MySQL查询时强制区分大写和小写

版权声明:本文为博主原创文章,未经博主同意不得转载。

https://blog.csdn.net/zyb_icanplay7/article/details/24981791

平时非常少会考虑数据存储须要明白字符串类型字段的大写和小写,MySQL默认的查询也不区分大写和小写。但作为用户信息。一旦username反复,又会浪费非常多资源。再者,李逵、李鬼的多起来。侦辨起来非常困难。

要做到这一点,要么在建表时。明白大写和小写敏感(字段明白大写和小写敏感)。

假设通盘数据库全部字段都须要大写和小写敏感。不如在字符集设置时做好调整。只是,通常不建议这么做。
 
假设跟我一样。数据库已经在线上跑了,一个表上百万条数据。做字段类型变更有可能导致数据库宕机。

那么好吧,在查询时,多加个单词好了。
比如,一般查询:

SELECT * FROM `user` WHERE name LIKE 'a%';  
SELECT * FROM `user` WHERE name LIKE 'A%';  
其结果是一样的,为了区分'A%'和'a%'。能够这么做:
 
SELECT * FROM `user` WHERE binary name LIKE 'a%';  
SELECT * FROM `user` WHERE binary name LIKE 'A%';  
只多了一个binary,就能够得到不同的结果。
 
当然,假设须要建表时强制区分大写和小写,能够这么写:
create  table  `user`(    
     name varchar (20) binary      
); 

猜你喜欢

转载自www.cnblogs.com/mqxnongmin/p/10570973.html