赞
踩
MySQL 表内数据条件查询不区分大小写是因为排序规则的问题.
在MySQL中,InnoDB存储引擎默认的字符集是utf8,utf8mb4等,这些字符集再存储数据时没有指定排序规则的话,会默认使用 utf8_general_ci或utf8mb4_general_ci 作为表的排序规则,那么该表内的数据讲不区分大小写,这两种排序规则都是case-insensitive(不区分大小写)的.
改为 utf8_bin 或者 utf8mb4_bin 是区分大小写的
在MySQL中,表名和字段名默认是不区分大小写的。这意味着在查询和引用表和字段时,大小写不会影响执行结果。
例如,如果您创建了一个名为"mytable"的表,可以使用"SELECT * FROM mytable"或"SELECT * FROM MyTable"或"SELECT * FROM MYTABLE"等语句来查询该表。MySQL将不区分这些语句中的大小写。
如果您希望在MySQL中配置表名和字段名区分大小写,可以使用以下步骤:
打开MySQL配置文件(通常是my.cnf或my.ini)。
在[mysqld]部分中添加以下行:
sql
lower_case_table_names=0
lower_case_table_names = 0:表名区分大小写,且按照用户指定存储。
lower_case_table_names = 1:表不区分大小写,使用小写存储。
lower_case_table_names = 2:表不区分大小写,按照用户指定存储。
在不同系统上运行,会有不同的默认值
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。