当前位置: 首页 > news >正文

MySQL忽略大小写问题

MySQL忽略大小写问题

今天使用MySQL查询时遇到一个问题,使用一个字符串去查询时,查出来两条数据,但是查到的数据大小写并不一样

mysql> select * from good where name = 'a';
+----+------+-------+
| id | name | price |
+----+------+-------+
|  3 | a    |   100 |
|  4 | A    |   100 |
+----+------+-------+

我查到了name为a和A的两条数据,这就很奇怪,难道mysql会忽略大小写吗?

然后查了一下资料,说是utf8_general_ci中的_ci是指忽略大小写Case-insensitive,但是我只设置了字符编码utf8,没有设置为utf8_general_ci呀,原来utf8默认的是就是utf8_general_ci

-- 查看字符集
show collation;
-- 查看数据库中表的字符集
show table status from 库名 like 表名;

-- 查看表中所有字段的字符集
show full columns from 表名;

果然是utf8_general_ci,好吧,那么如何修改呢?只能改成utf8_bin了

--修改数据库字符集:
ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];  

--把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...] 
-- 示例:ALTER TABLE good CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin; 

--修改表的默认字符集:
ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...]; 
-- 示例:ALTER TABLE good DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; 

-- 修改字段的字符集:
ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...]; 
-- 示例:ALTER TABLE good CHANGE name name VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_bin; 
ALTER TABLE good CHANGE name name VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci; 

改完之后就OK了

mysql> select * from good where name = 'a';
+----+------+-------+
| id | name | price |
+----+------+-------+
|  3 | a    |   100 |
+----+------+-------+

参考文献

  • 忽略大小写问题

相关文章:

  • 京东一面:为什么 IDEA 建议去掉 StringBuilder,而要使用 “+” 拼接字符串?
  • 前端怎么排查幽灵依赖
  • doris:Iceberg
  • python二级考试中会考到的第三方库
  • 【大模型LLM面试合集】分布式训练_张量并行
  • 视觉Transformer(ViT)解析:它们比CNN更好吗?
  • [python] 类
  • 李国杰院士 “七问” DeepSeek:深度剖析 AI 发展新态势
  • Gin框架从入门到实战:核心用法与最佳实践
  • 深入探索像ChatGPT这样的大语言模型
  • FastGPT 引申:常见 Rerank 实现方案
  • Unity打包到webgl鼠标图标大小不正确
  • leetcode 0018 四数之和-medium
  • 【linux】文件与目录命令 - uniq
  • SpringBoot接入DeepSeek(硅基流动版)+ 前端页面调试(WebSocket连接模式)
  • DELL EMC Unity存储如何让控制器进入service mode和退出service mode
  • SQL进阶技巧:上课时长计算
  • 【C++】模板的改进
  • D3.js-简单入门1
  • Transformer学习
  • 做网站办贷款/专业seo推广
  • 深圳网站制作问/快速网站推广优化
  • 网站页面描述怎么写/互联网广告营销
  • 运河网站制作/杭州seo联盟
  • 国土分局网站建设方案/中国十大流量网站
  • 营销类网站如何优化/百度免费广告发布平台