mysql不区分à与a或大小写的解决方法
以下适合于大小写不敏感的情况也适用于不区分à与a.
1.查看排序规则(collation)
当列使用的排序规则是以_ci
结尾的时候,比如我们一般使用的utf8mb4的这几个排序规则是这样的.
Variable_name | Value |
---|---|
collation_connection | utf8mb4_general_ci |
collation_database | utf8mb4_general_ci |
collation_server | utf8mb4_general_ci |
.以_ci
结尾的都是大小写不敏感的.
以_cs
或者_bin
结尾的排序规则都是大小写敏感的.
可以使用一下命令来查看这些排序规则:
mysql> show variables like ‘%collation%’;
+———————-+——————-+
| Variable_name | Value |
+———————-+——————-+
| collation_connection | utf8mb4_general_ci |
| collation_database | utf8mb4_general_ci |
| collation_server | utf8mb4_general_ci |.
也可以查看表的排序规则:
mysql> SELECT table_schema, table_name, table_collation
FROM information_schema.tables WHERE table_name =mytable
;
+———————-+————+——————-+
| table_schema | table_name | table_collation |
+———————-+————+——————-+
| myschema | mytable | latin1_swedish_ci |
2.改变排序规则
能够改变数据库 ,表或者列的排序规则:
– Change database collation
ALTER DATABASEdatabasename
DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;– or change table collation
ALTER TABLEtable
CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;– or change column collation
ALTER TABLEtable
CHANGEValue
Value
VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin;
当然了,这些utf8_bin的也可以改成utf8mb4_bin.
原帖地址:
http://stackoverflow.com/questions/3936967/mysql-case-insensitive-select
的Comparisons are case insensitive
这一条