有人能告诉我,如果MySQL SELECT查询是大小写敏感或大小写不敏感默认?如果不是,我要发送什么查询,这样我就可以做一些事情:
SELECT * FROM `table` WHERE `Value` = "iaresavage"
实际上,价值的真正价值是IAreSavage。
有人能告诉我,如果MySQL SELECT查询是大小写敏感或大小写不敏感默认?如果不是,我要发送什么查询,这样我就可以做一些事情:
SELECT * FROM `table` WHERE `Value` = "iaresavage"
实际上,价值的真正价值是IAreSavage。
当前回答
带有二进制标志设置的字符串字段将始终区分大小写。 如果你需要对非二进制文本字段进行区分大小写的搜索,请使用以下方法: SELECT 'test' REGEXP二进制'test'作为结果;
其他回答
使用二进制
这是一个简单的选择
SELECT * FROM myTable WHERE 'something' = 'something'
= 1
这是一个二进制选择
SELECT * FROM myTable WHERE BINARY 'something' = 'something'
or
SELECT * FROM myTable WHERE 'something' = BINARY '
= 0
默认是不区分大小写的,但是 下一个最重要的事情 您应该看看该表是如何创建的 首先,因为你可以指定大小写 创建表时的敏感性。
下面的脚本创建一个表。 注意在底部,它说COLLATE latin1_general_cs。 结尾的cs表示区分大小写。 如果你想要 表是不区分大小写的,你要么保留它 或者使用“COLLATE latin1_general_ci”。
CREATE Table PEOPLE (
USER_ID INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
FIRST_NAME VARCHAR(50) NOT NULL,
LAST_NAME VARCHAR(50) NOT NULL,
PRIMARY KEY (USER_ID)
)
ENGINE=MyISAM DEFAULT CHARACTER SET latin1
COLLATE latin1_general_cs AUTO_INCREMENT=0;
如果您的项目是这样的,您可以创建您的 自己的表,那么指定您的 在创建表时选择大小写。
您选择的排序规则集是否区分大小写。
您可以小写的值和传递的参数:
SELECT * FROM `table` WHERE LOWER(`Value`) = LOWER("IAreSavage")
另一种(更好的)方法是使用文档中提到的COLLATE操作符
它们是不区分大小写的,除非你做二进制比较。