sql中的like 1 跟 =1 查询的结果一样

247 阅读1分钟

在SQL中,LIKE和=都是用于比较和匹配的操作符,但它们的使用方式和目的有所不同。

=:=用于进行等值比较,它检查两个值是否相等。例如,SELECT * FROM table WHERE column = 1;将返回column列中所有等于1的行。

LIKE:LIKE操作符用于模式匹配,它允许你在列中搜索特定模式。LIKE操作符与通配符一起使用,这些通配符包括 %(代表任意字符序列)、_(代表单个字符)和 [](代表字符集合)。例如,SELECT * FROM table WHERE column LIKE '1%';将返回column列中以1开头的所有行。

因此,LIKE 1和=1的区别在于:

LIKE 1用于模式匹配,可以匹配包含特定模式的字符串,而不仅仅是等值比较。

= 1用于进行等值比较,检查一个值是否等于另一个值。

需要注意的是,LIKE操作符对性能有一定影响,特别是在大型表中进行模糊匹配时可能会导致性能下降。如果可以进行等值比较,最好使用=操作符;如果需要进行模式匹配,则可以使用LIKE操作符。 在我们通常都是用LIKE进行模糊查询,但是有一些人喜欢用它当作=使用,我自己测试用在5.7版本中like 1 查询的数据为 1XX的数据信息,但是在8.0版本结果like 1查询的数据跟=1结果一样: SELECT * FROM sys_menu where menu_name like "1%"; snipaste_20231015_171916.png SELECT * FROM sys_menu where menu_name = "1";

snipaste_20231015_172025.png SELECT * FROM sys_menu where menu_name like "1";

snipaste_20231015_172005.png

在不同的mysql版本的配置模式不同,查询的方式也有可能不同