我正在编写一个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)
我在互联网上搜索并尝试使用BINARY
和COLLATE utf8_bin
,但它没有帮助。我怎样才能使它工作?提前谢谢。
答案 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
我希望这有助于你