关于mysql字符集和排序规则

今天写更新操作的时候,发现只是改变了大小写,javaJava,无法修改成功,说已存在,试过来试过去,发现不区分大小写,然后去用mysql直接用sql语句查,发现where name="java"where name="Java"都能查到Java这条数据,然后查了一下,原来建立数据库的时候,排序规则选的是_ci结尾的, _ci结尾意思是case insensitive,大小写不敏感, _cs结尾的意思是case sensitive,大小写敏感。

然后发现utf_8 没有_cs,就改成了 _bin,也能区分大小写了。

修改语句为:

ALTER TABLE `t_tag` CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
  1. utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写。
  2. utf8_genera_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感。
  3. utf8_general_cs区分大小写,cs为case sensitive的缩写,即大小写敏感。
posted @ 2020-10-18 19:45  xsyz  阅读(155)  评论(0编辑  收藏  举报