当使用SQL时,在WHERE子句中使用=而不是LIKE有任何好处吗?
没有任何特殊的运算符,LIKE和=是一样的,对吧?
当使用SQL时,在WHERE子句中使用=而不是LIKE有任何好处吗?
没有任何特殊的运算符,LIKE和=是一样的,对吧?
当前回答
使用=可以避免在运行时构建查询时字符串中的通配符和特殊字符冲突。
这使程序员的工作更轻松,因为不必转义所有可能滑入LIKE子句并不能产生预期结果的特殊通配符。毕竟,=是99%的用例场景,每次都必须逃避它们将是一种痛苦。
在90年代翻白眼
我也怀疑它有点慢,但如果模式中没有通配符,我怀疑它的意义。
其他回答
使用=可以避免在运行时构建查询时字符串中的通配符和特殊字符冲突。
这使程序员的工作更轻松,因为不必转义所有可能滑入LIKE子句并不能产生预期结果的特殊通配符。毕竟,=是99%的用例场景,每次都必须逃避它们将是一种痛苦。
在90年代翻白眼
我也怀疑它有点慢,但如果模式中没有通配符,我怀疑它的意义。
=比LIKE快得多。
在有11GB数据和超过1000万条记录的MySQL上测试,f_time列被索引了。
SELECT * FROM XXXXX WHERE f_time = '1621442261' -花费0.00s并返回330条记录
SELECT * FROM XXXXX WHERE f_time like '1621442261' -花费44.71秒并返回330条记录
=和LIKE是不一样的;
=匹配精确的字符串 LIKE匹配可能包含通配符的字符串(%)
LIKE和=是不同的。LIKE是在搜索查询中使用的。它还允许像_(简单字符通配符)和%(多字符通配符)这样的通配符。
如果你想要精确匹配,应该使用=,它会更快。
这个网站解释了LIKE
除了LIKE可以使用通配符外,还有一个区别在于尾随空格:=运算符忽略尾随空格,而LIKE则不会。