事因:同事说”我添加abc小写的关键字, 然后再添加大写的ABC就报关键字已经存在”
我听了觉的奇怪,查找了一下, 发现原来mysql默认查询不区分大小写,
show variables like '%case_table%';
可以看到
lower_case_table_names的值为0, lower_case_table_names字段值是标明区不区分大小写(0:区分;1:不区分)
即:
SELECT * FROM (`keyword`) WHERE `level` = '1' AND `keyword` = 'abc';
和
SELECT * FROM (`keyword`) WHERE `level` = '1' AND `keyword` = 'ABC';
查询结果是一样的, google了一下有三个方法要mysql查询区分大小写
方法一, 修改字段的类型:
ALTER TABLE `keyword` MODIFY COLUMN `keyword` VARCHAR(45) BINARY CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ;
加上标识”BINARY “或者在创建表时
create table table_name(
keyword varchar (45) binary
);
加标识
方法二, 修改查询SQL:
SELECT * FROM (`keyword`) WHERE `level` = '1' AND `keyword` = binary 'ABC';
方法三, 修改mysql的配置文件my.ini或者my.cnf
[mysqld]
lower_case_table_names=1
然后重启MYSQL服务。
好好学习,天天向上!^_^!