MySQL查询条件中的大写和小写

时间:2014-08-13 15:08:58

标签: php mysql sql

我正在编写一个SQL查询,它使用WHERE语句来查找记录。问题是MySQL似乎并不关心条件中的大写和小写字符串。我的两个下面的查询都有相同的结果。

SELECT * FROM mytable WHERE url = 'http://domain.com/aaa'

=> http://domain.com/aaa记录(正确)

SELECT * FROM mytable WHERE url = 'http://domain.com/AAA'

=> http://domain.com/aaa记录(INCORRECT)

我在互联网上搜索并尝试使用BINARYCOLLATE utf8_bin,但它没有帮助。我怎样才能使它工作?提前谢谢。

3 个答案:

答案 0 :(得分:0)

好的,你希望区分大小写,而BINARY是唯一的最佳选择

SELECT * FROM mytable WHERE BINARY url = 'http://domain.com/aaa'

答案 1 :(得分:0)

您可以使用MySQL的内置字符串函数

SELECT * FROM mytable WHERE url = LOWER('http://domain.com/AAA')

参考:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

答案 2 :(得分:0)

默认情况下,Mysql查询不区分大小写,但您可以尝试使用二元运算符使其区分大小写。这是适合你的代码

适用于网址http://domain.com/aaa

SELECT * FROM table WHERE BINARY url = http://domain.com/aaa 

适用于网址http://domain.com/AAA

SELECT * FROM table WHERE BINARY url = http://domain.com/AAA 

我希望这有助于你