最近有人告诉我不建议在 SQL 中使用“LIKE”关键字。这是真的?如果是这样为什么?如果这是真的,还有其他选择吗?
原因主要是性能。然而,另一方面,LIKE 是标准 SQL,应该适用于所有数据库。因为 LIKE 必须解析模式字符串,所以它比在较长字符串中查找子字符串(使用 charindex 或 instr 或您数据库最喜欢的函数)效率要低一些。然而,处理器的速度是如此之快,以至于现在几乎没有什么区别,除了最大的查询之外。
LIKE 的一个警告是在连接语句中(对于其他替代方案也是如此)。一般来说,数据库引擎不会在连接中使用 LIKE 索引。因此,如果您能够以一种对索引更加友好的方式表达 join 子句,那么您可能会看到性能的大幅提高。
顺便说一句,我是 SQL 语言的老手了,而且往往是一个避免亲自使用它的人。然而,这不是一个应该传承的习惯,因为已经没有什么基础可以避免它了。