Php 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,但没有任何帮助。我怎样才能让它工作?提前谢

我正在编写一个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“

您可以使用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 
用于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 

我希望这有助于你

那张表的对比是什么?您好@frlan,它是
utf8\u general\u ci
这可能有助于了解这个主题。另外,如果您不能/不会更改排序规则,请
从FooName中选择Title,其中包含二进制标题,如“%foo%”
其中包含二进制url=“…”
。utf8\u general\u ci…ci表示不区分大小写…因此请将排序规则更改为区分大小写的排序规则。