Php MySQL查询条件中的大小写
我正在编写一个SQL查询,它使用WHERE语句查找记录。问题是MySQL似乎不关心条件中的大小写字符串。我下面的两个查询都有相同的结果Php MySQL查询条件中的大小写,php,mysql,sql,Php,Mysql,Sql,我正在编写一个SQL查询,它使用WHERE语句查找记录。问题是MySQL似乎不关心条件中的大小写字符串。我下面的两个查询都有相同的结果 从mytable中选择*http://domain.com/aaa“ =>http://domain.com/aaa记录(正确) 从mytable中选择*http://domain.com/AAA“ =>http://domain.com/aaa记录(不正确) 我在互联网上搜索并尝试使用二进制和校对utf8\u bin,但没有任何帮助。我怎样才能让它工作?提前谢
从mytable中选择*http://domain.com/aaa“
=>http://domain.com/aaa
记录(正确)
从mytable中选择*http://domain.com/AAA“
=>http://domain.com/aaa
记录(不正确)
我在互联网上搜索并尝试使用
二进制
和校对utf8\u bin
,但没有任何帮助。我怎样才能让它工作?提前谢谢。好的,您希望进行区分大小写的比较,而二进制是唯一的最佳选择
从mytable中选择*http://domain.com/aaa“
您可以使用MySQL的内置字符串函数
SELECT * FROM mytable WHERE url = LOWER('http://domain.com/AAA')
REF:默认情况下,Mysql查询不区分大小写,但您可以尝试使用二进制运算符使其区分大小写。这是应该适用于您的代码 用于URL
http://domain.com/aaa
SELECT * FROM table WHERE BINARY url = http://domain.com/aaa
SELECT * FROM table WHERE BINARY url = http://domain.com/AAA
用于URLhttp://domain.com/AAA
SELECT * FROM table WHERE BINARY url = http://domain.com/aaa
SELECT * FROM table WHERE BINARY url = http://domain.com/AAA
我希望这有助于你那张表的对比是什么?您好@frlan,它是
utf8\u general\u ci
这可能有助于了解这个主题。另外,如果您不能/不会更改排序规则,请从FooName中选择Title,其中包含二进制标题,如“%foo%”
或其中包含二进制url=“…”
。utf8\u general\u ci…ci表示不区分大小写…因此请将排序规则更改为区分大小写的排序规则。