本文最后更新于:10 个月前
如果直接使用MYSQL客户端用SQL语句查询数据库中的数据,SQL语句中字段的大写或小写查出的数据是一样的,说明查询条件对字段的大小写是不敏感(默认)。
怎样让MYSQL对大小字母写敏感?
解决方案一
MYSQL区别大小写需要设置collate(校对) 。
collate规则:
*_bin: 表示的是
binary casesensitive collation
,也就是说是区分大小写的*_cs: 表示的是
casesensitive collation
,区分大小写*_ci: 表示的是
caseinsensitive collation
,不区分大小写
解决方法
可以将查询条件用binary()括起来。 比如:
select * from emp where binary username= 'jack';
可以修改该字段的collation 为 binary。比如:
ALTER TABLE TABLENAME MODIFY COLUMN COLUMNNAME VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;
解决方案二
mysql查询默认是不区分大小写的 如:
select * from emp where username=‘jack';
select * from emp where username='JACK';
得到的结果是一样的,如果我们需要进行区分的话可以按照如下方法来做:
第一种方法
要让mysql查询区分大小写,可以:
select * from emp where binary username='jack'
select * from emp where binary username='JACK'
第二种方法
在建表时时候加以标识
create table emp(
username varchar(20) binary
)
原理:对于CHAR、VARCHAR和TEXT类型,BINARY属性可以为列分配该列字符集的校对规则。BINARY属性是指定列字符集的二元校对规则的简写。排序和比较基于数值字符值,因此也就自然区分了大小写。
原文链接:https://blog.csdn.net/qq_15160079/article/details/100976519
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!