现象

在使用MySQL字符串查询的时候遇到这么一个问题,查询没有区分大小写,如下图所示

查询name的时候,使用A去查询或者使用a去查询,结果是一样的。

限定讨论范围

  1. 仅讨论表的创建;
  2. 仅讨论表中列值的大小写查询问题;
  3. 仅讨论字符集编码utf8,排序规则utf8_general_ci,utf8_bin;

原因

MySQL字符集与排序规则

首先要说到MySQL的字符集与排序规则,在创建一张表时,可以指定表的字符集与排序规则,也可以指定列的字符集排序规则。(本文不讨论数据库各个级别配置对列的字符集和排序规则的影响)。影响查询结果的是该列的排序规则,如上文中中展示的查询结果,name字段设置的排序规则就是utf8_general_ci。如果通过命令修改name列的排序规则为utf8_bin,则查询时候能够区分大小写,如下图所示。

在确定了字符集后,影响查询是否支持大小写的是列的排序规则。

总结

字符集是一套符号和编码,而排序规则则是在字符集内用于比较字符的一套规则。仅针对使用MySQL中utf8的的字符集,将英文字母“A”与“a”编码存入磁盘,所以读取出来的数据是区分大小写的。但是在查询的时候,从磁盘中获取utf8解码后的字符,再通过排序规则来比较,如果使用的是utf8_general_ci,则查询过程中不区分大小写,如果使用的是utf8_bin,则查询过程区分大小写。

MySQL查询不区分大小写问题相关推荐

  1. mysql select 区分大小写,MySql查询不区分大小写解决方案(两种)

    当我们输入不管大小写都能查询到数据,例如:输入 aaa 或者aaA ,AAA都能查询同样的结果,说明查询条件对大小写不敏感. 解决方案一: 于是怀疑Mysql的问题.做个实验:直接使用客户端用sql查 ...

  2. MySQL查询不区分大小写

    解决MySQLl查询不区分大小写问题 MySQL默认查询是不区分大小写的,可以在查询是使用binary来实现区分大小写的查询操作 binary 区分大小写

  3. 解决MySQl查询不区分大小写

    问题 最近,在用SSH框架完成一个实践项目时,碰到了一个莫名其妙的Bug困扰了我好久,最后终于解决,记录如下. 问题:同学在测试系统的时候突然发现,数据库保存的账户本来应该是admin,结果该同学用A ...

  4. 使mysql查询条件区分大小写 数据库搜索中大小写敏感性

    在默认情况下,mysql搜索不区分大小写(但某些字符集始终区分大小写,如czech).这意味着,如果你使用col_name LIKE 'a%'进行搜索,你将获得以A或a开始的所有列. 如果打算使搜索区 ...

  5. django查询mysql 区分大小写_Django+MySQL查询不区分大小写问题

    最近发现一个现象是测试环境的 sqlite 是可以区分巨细写的. 就是说 Python # sqlite 环境 >>> Company.objects.filter(name='Te ...

  6. MySQL查询区分大小写

    2019独角兽企业重金招聘Python工程师标准>>> 问题描述: 找出用户名id为'AAMkADExM2M5NjQ2LWUzYzctNDFkMC1h'的用户的数据: select ...

  7. mysql大小写区分_详解MySQL查询时区分字符串中字母大小写的方法

    如果你在mysql有唯一约束的列上插入两行值'A'和'a',Mysql会认为它是相同的,而在oracle中就不会.就是mysql默认的字段值不区分大小写?这点是比较令人头痛的事.直接使用客户端用sql ...

  8. mysql 查询两表 两列 比较大小写_mysql 查询表中列的数据不区分大小写的解决

    mysql查询默认是不区分大小写的 如: select * from some_table where str='abc'; select * from some_table where str='A ...

  9. php mysql 查询 区分大小写_MySQL查询字符串时区分大小写

    MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,这个字符集对大小写不敏感,因此在比较过程中中文编码字符大小写转换造成了这种现象. 方法一: 解 ...

最新文章

  1. AE 动画直接变原生代码:Airbnb 发布开源动画库 Lottie
  2. php和python写爬虫-一个简单的Python写的XML爬虫
  3. python2.7 安装pycrypto库报错
  4. ifix怎么装服务器系统上,ifix服务器和客户端配置
  5. mysql什么情况会刷脏页_mysql-刷脏页(12)
  6. java工程师试卷,Java工程师试卷A
  7. 千寻的计算机字符,转义字符变量与赋值
  8. phpcms v9 在当前栏目下获取父栏目与当前栏目的名称与连接
  9. Struts2学习笔记(六) 结果(Result)(上)
  10. Bitbake中文手册--1(概述)
  11. error C1083 错误
  12. 低多边形,通过PS制作低多边形图形
  13. BC26 计算三角形的周长和面积(海伦公式)
  14. 数据分析实战(一百零一):项目分析思路 —— 用户增长实践经验分享
  15. PTA 钻石真题卷——均是素数
  16. 两个电脑文件如何同步
  17. 盘点三种卫星图分幅导出的方法
  18. Android 让注册商标R往上移
  19. 软考-嵌入式系统设计师:[多媒体技术:笔记(四)]
  20. 第四课 FZHOP硬件版上位机教程-曲线图-波峰波谷取值(CP1H版)

热门文章

  1. linux自动锁屏命令_自制Linux终端锁屏工具
  2. 【DB笔试面试750】在Oracle中,请简单描述DG的架构。
  3. Trac Terms简体中文翻译.
  4. asp.net core中上传文件的解决方案
  5. 高性能网站建设指南---前端工程师技能精髓
  6. suitdiy男装定制网 分析、设计、实现
  7. ceph存储应用--owncloud
  8. 个人看书学习java的心得!
  9. 3.1 地面激光雷达系统
  10. div居中方法(共9种)