有人能告诉我,如果MySQL SELECT查询是大小写敏感或大小写不敏感默认?如果不是,我要发送什么查询,这样我就可以做一些事情:
SELECT * FROM `table` WHERE `Value` = "iaresavage"
实际上,价值的真正价值是IAreSavage。
有人能告诉我,如果MySQL SELECT查询是大小写敏感或大小写不敏感默认?如果不是,我要发送什么查询,这样我就可以做一些事情:
SELECT * FROM `table` WHERE `Value` = "iaresavage"
实际上,价值的真正价值是IAreSavage。
当前回答
您可以小写的值和传递的参数:
SELECT * FROM `table` WHERE LOWER(`Value`) = LOWER("IAreSavage")
另一种(更好的)方法是使用文档中提到的COLLATE操作符
其他回答
您选择的排序规则集是否区分大小写。
使用二进制
这是一个简单的选择
SELECT * FROM myTable WHERE 'something' = 'something'
= 1
这是一个二进制选择
SELECT * FROM myTable WHERE BINARY 'something' = 'something'
or
SELECT * FROM myTable WHERE 'something' = BINARY '
= 0
试一试:
order by lower(column_name) asc;
还要注意,在Linux上表名是区分大小写的,除非您将lower_case_table_name config指令设置为1。这是因为在Linux中表是由区分大小写的文件表示的。
尤其要注意在不区分大小写的Windows上开发,并将其部署到生产环境中。例如:
"SELECT * from mytable"
除非设置了上面提到的指令,否则myTable在Windows中会成功,但在Linux中会失败。
参考资料:http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html
它们是不区分大小写的,除非你做二进制比较。