在 MySQL 中,默认情况下,字符串比较是不区分大小写的。这意味着在执行 WHERE 子句时,'abc' 和 'ABC' 会被视为相等。
问题示例
假设我们有一个名为 emlog_blog 的表,其中包含一个名为 title 的字段。如果我们执行以下查询:
SELECT * FROM emlog_blog WHERE title LIKE '%phpat.com%';
此查询将返回所有包含 'phpat.com' 的记录,无论其大小写如何。
解决方案:使用 BINARY 关键字
如果我们希望查询区分大小写,可以使用 BINARY 关键字。BINARY 强制字符串比较按字节进行,从而实现区分大小写。
修改后的查询如下:
SELECT * FROM emlog_blog WHERE BINARY title LIKE '%phpat.com%';
此查询仅返回 title 字段中包含完全匹配 'phpat.com'(包括大小写)的记录。
注意事项
-
在使用
BINARY时,确保查询字符串的大小写与数据库中的数据完全一致。 -
BINARY关键字不仅适用于LIKE,也适用于其他比较操作符,如=。
评论交流 (0)
暂无评论,来坐第一个沙发吧~