MySQL 的 LIKE 运算符和等于 (=) 运算符之间有什么显著区别?
我们已经了解了如何使用 MySQL SELECT 命令从 MySQL 表中获取数据。我们还可以使用称为 WHERE 子句的条件子句来选择所需记录。
当需要进行精确匹配时,带有“等于”号 (=) 的 WHERE 子句可以很好地工作。例如,“tutorial_author = 'Sanjay'”。但是,可能需要过滤所有 tutorial_author 名称包含“jay”的结果。这可以使用 MySQL LIKE 运算符以及 WHERE 子句来处理。
如果在不使用通配符的情况下使用 MySQL LIKE 运算符,则 LIKE 运算符与 WHERE 子句中的等于号完全相同。
示例
mysql> Select * from Student Where Name LIKE 'Harshit'; +------+---------+---------+----------+--------------------+ | Id | Name | Address | Subject | year_of_admission | +------+---------+---------+----------+--------------------+ | 15 | Harshit | Delhi | Commerce | 2009 | +------+---------+---------+----------+--------------------+ 1 row in set (0.00 sec) mysql> Select * from Student Where Name = 'Harshit'; +------+---------+---------+----------+--------------------+ | Id | Name | Address | Subject | year_of_admission | +------+---------+---------+----------+--------------------+ | 15 | Harshit | Delhi | Commerce | 2009 | +------+---------+---------+----------+--------------------+ 1 row in set (0.00 sec)
除了具有通配符 % 和 _ 的区别之外,LIKE 和 = 运算符之间的一个显著区别在于,LIKE 运算符不忽略尾随空格,而 = 运算符忽略尾随空格。
示例
mysql> Select * from Student Where Name = 'Harshit '; +------+---------+---------+----------+--------------------+ | Id | Name | Address | Subject | year_of_admission | +------+---------+---------+----------+--------------------+ | 15 | Harshit | Delhi | Commerce | 2009 | +------+---------+---------+----------+--------------------+ 1 row in set (0.00 sec) mysql> Select * from Student Where Name LIKE 'Harshit '; Empty set (0.00 sec)
广告