好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

MySQL区分大小写

255 ) DEFAULT NULL, `password` varchar( 255 ) DEFAULT NULL ) ENGINE =InnoDB DEFAULT CHARSET= utf8; INSERT INTO user(username, password) VALUES ( ‘ abc ‘ , ‘ 123 ‘ ); INSERT INTO user(username, password) VALUES ( ‘ Abc ‘ , ‘ 456 ‘ ); INSERT INTO user(username, password) VALUES ( ‘ bcd ‘ , ‘ 444 ‘ );

2)查询

 select  *  from  user  where  username =  ‘  abc  ‘; 

结果如下:

 查询username是"abc"的结果把"Abc"的也查询出来了。若需要区分大小写,需要进行配置。

2.解决办法

2.1方法一:查询时区分

在查询时,在where关键字后面添加binary关键字,那么就会区分大小写去查询。

 select  *  from  user  where   binary  username =  ‘  abc  ‘; 

2.2方法二:修改字段属性区分

字段默认的规则是ut8***_ci。以 “_ci" 结尾的表示不区分大小写,以 “_bin" 结尾的表示区分大小写。

修改需要区分大小写的字段的校对规则为utf8****_bin ,需要进行大小写区分

ALTER TABLE user MODIFY COLUMN username varchar( 255 )  BINARY CHARACTER SET utf8 COLLATE utf8_bin; 

修改后查询,便会区分大小写

 select  *  from  user  where  username =  ‘  abc  ‘ ;

2.3方法三:创建表时区分

在创建表时指定binary,那么可以直接查询,,也很方便。

 CREATE TABLE `user` (
  `username` varchar(  255  ) binary  DEFAULT NULL,
  `password` varchar(  255  ) DEFAULT NULL
) ENGINE =InnoDB DEFAULT CHARSET=utf8;

 

MySQL区分大小写

标签:div   into   char   mod   lazy   区分大小写   value   table   set   

查看更多关于MySQL区分大小写的详细内容...

  阅读:30次