原创

Mysql 数据库查询时不区分大小写解决方案

        mysql数据库中默认查询不区分大小写的,如果想在进行查询时区分大小写需要进行简单的配置操作,下面本人为大家提供了一种解决mysql查询时不区分大小写的方法,对于初学者可以参考一下。


mysql校验规则如下:

*_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的
*_cs: case sensitive collation,区分大小写
*_ci: case insensitive collation,不区分大小写


解决方法:

1、查询条件增加属性binary,具体执行sql语句如下:

select * from user where binary name ='www.yoodb.com';


2、修改该字段的collation为binary,具体执行sql语句如下:

ALTER TABLE user MODIFY COLUMN name VARCHAR(60) BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;


3、mysql查询默认是不区分大小写,案例如下:

select * from user where name= 'www.yoodb.com';
select * from user where name='WWW.YOODB.COM';

得到的结果是一样的.


4、如果需要进行区分的话,进行如下查询即可:

select * from user where binary name= 'www.yoodb.com';
select * from user where binary name='WWW.YOODB.COM';

此时得到的结果是就不一样了.


5、在建表时直接增加标识,就没有比较添加了,具体代码如下:

create table some_table(
      id varchar(50) NOT NULL,
   name char(20) binary
)


1)对于CHAR、VARCHAR和TEXT类型,BINARY属性可以为列分配该列字符集的校对规则;

2)BINARY属性是指定列字符集的二元 校对规则的简写;

3)排序和比较基于数值字符值。因此也就自然区分了大小写。

关注下方微信公众号“Java精选”(w_z90110),回复关键字领取资料:如HadoopDubboCAS源码等等,免费领取资料视频和项目。 

涵盖:程序人生、搞笑视频、算法与数据结构、黑客技术与网络安全、前端开发、Java、Python、Redis缓存、Spring源码、各大主流框架、Web开发、大数据技术、Storm、Hadoop、MapReduce、Spark、elasticsearch、单点登录统一认证、分布式框架、集群、安卓开发、iOS开发、C/C++、.NET、Linux、Mysql、Oracle、NoSQL非关系型数据库、运维等。

评论

分享:

支付宝

微信