问题描述

当我们输入不管大小写都能查询到数据,例如:输入 aaa 或者aaA ,AAA都能查询同样的结果,说明在MySQL中,查询条件对大小写不敏感。

select * from some_table where str='abc';
select * from some_table where str='ABC'; -- 查询结果相同

解决方法

方法一:查询时指定

可以将查询条件用binary()括起来。

select * from TableA where binary columnA ='aaa';

方法二:修改字段属性

修改该字段的 collation 为 binary。

在实际使用时,因为 Python 的 SQLAlchemy 没有区分大小写的选项(暂时没找到),所以就用这种方法,直接改字段属性了。

-- 示例1
ALTER TABLE TABLENAME MODIFY COLUMN COLUMNNAME VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;-- 示例2(实际使用的,环境 MySQL5.7)
ALTER TABLE `dbname`.`tablename`
CHANGE COLUMN `key` `key` VARCHAR(100) binary NULL DEFAULT NULL ;

方法三:建表时指定

在建表时时候加以标识

create table some_table(str char(20) binary
)

原理:

对于CHAR、VARCHAR和TEXT类型,BINARY属性可以为列分配该列字符集的 校对规则。BINARY属性是指定列字符集的二元 校对规则的简写。排序和比较基于数值字符值。因此也就自然区分了大小写。


拓展

关于 mysql 表名默认 windows 不区分大小写 在linux 区分大小写

因为操作系统本身的原因,Linux是严格区分大小写的。

在linux下开发是支持大小写区分的,所以在文件命名的时候没有什么问题
但是在WINDOWS下进行开发时一定要注意这个问题,windows默认是不支持大小写区分的。
在windows环境下创建文件时一定要记得这一点,不然会出问题。

【MySQL】如何让数据库查询区分大小写相关推荐

  1. SQL Server数据库查询区分大小写、全半角——排序规则的应用(转载)

    SQL Server数据库查询区分大小写.全半角--排序规则的应用 因为偶然的原因,需要在INNER JOIN联表时,让对应字段进行区分大小写的比较.而默认情况下建立的Sql Server数据库是不区 ...

  2. MySQL学习之数据库查询

    数据库查询 一.基本查询语句 Select {* |<字段列表>} [ From <table1>,<table2>-- [where <expr>] ...

  3. mysql实验四数据库查询和视图_实验四 数据库查询和视图.doc

    实验四 数据库查询和视图 测试过程:(实验中出现的问题.错误.解决方法) 问题一:新建查询,调试过程中出现提示无效行或列 问题二:新建查询,调试过程中出现第几行出现错误 解决办法:检查新建的查询,标点 ...

  4. mysqlselectdb php_PHP MySQL Select(数据库查询)

    SELECT 语句用于从数据库中选取数据. 语法 SELECT column_name(s) FROM table_name 注释:SQL 语句对大小写不敏感.SELECT 与 select 等效.c ...

  5. mysql联合索引数据库查询数据会变慢_如何定位并优化慢查询SQL以及联合索引和索引多的弊端...

    以下思路均以Mysql为例,不过SQL调优通用的 根据慢日志定位慢查询SQL: 使用show variables like '%quer%';主要查看slow_query_log,slow_query ...

  6. MySQL 常见的数据库查询性能优化手段

    简单介绍了一些常见MySQL数据库优化手段,比如减少数据访问.使用索引.使用关联查询等等. 文章目录 1 优化数据访问 2 重构查询 2.1 优化子查询 2.2 优化GROUP BY和DISTINCT ...

  7. mysql不同服务器数据库查询_不同服务器不同数据库两张表连接查询使用经验

    使用SQL语句连接查询位于两个不同的服务器不同的数据库中的两张表,最初将SQL语句写成以下形式select*fromProduct pinnerjoin opendatasource('SQLOLED ...

  8. mysql实验四数据库查询和视图_数据库-第四次实验报告-视图-t-sql语句

    实验十报告 创建视图 实验目的 1.掌握创建视图的SQL语句的用法. 2.掌握使用企业管管理器创建视图的方法. 3.掌握使用创建视图向导创建视图的方法. 4.掌握查看视图的系统存储过程的用法. 5.掌 ...

  9. 数据库查询张三的MYSQL成绩_MySQL数据库查询练习题

    练习题目 查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数 1.1 查询同时存在" 01 "课程和" 02 &q ...

最新文章

  1. #串口通信超时处理_简单通信协议
  2. PgSQL · 应用案例 · 阿里云 RDS PostgreSQL 高并发特性 vs 社区版本
  3. [搜索]一种分词的实现(2)
  4. SAP 电商云 Spartacus UI feature level directive 的工作原理
  5. html 如何去除浮动,CSS浮动? 如何清除浮动?
  6. 学习 Spring Boot:(二十九)Spring Boot Junit 单元测试
  7. Nifi 怀疑出个bug 流程中的实时数据结果痕迹没有不是实时的,是之前的。以及相应解决办法。
  8. 卸载iis express后80端口仍然被占用的解决方法
  9. Flutter实战一Flutter聊天应用(二十)
  10. 除了敲代码,程序员还需要哪些必备技能?
  11. ubuntu libxml2 使用
  12. 最新可用的快速FLV转MP4方法,解决转换后无声音及视频不流畅问题
  13. 【深度学习之美】山重水复疑无路,最快下降问梯度(入门系列之七)
  14. php 并列排名,MySQL并列排名和顺序排名查询
  15. 5.3.5—二叉查找树—Convert Sorted List to Binary Sear Tree
  16. 13计算机组装,舞阳中专2012-13年度《计算机组装与维修》期中考试试题
  17. 苹果越狱手机知识大全
  18. matlab dae,matlab用ode15数值计算微分代数方程(DAE)的问题
  19. 这才是增加收录的核心操作方向
  20. 变色龙给驱动打补丁实现USB驱动无需USBInjectAll.kext

热门文章

  1. CodeForces - 859C Pie Rules(dp+博弈)
  2. php如何设置断点调试,使用 PHPStorm + Xdebug 实现断点调试
  3. 使用二维码识别技术的好处_人脸识别技术什么场景都能使用吗?
  4. EOJ_1007_环形双向链表
  5. HDU4604(双端队列与DP)
  6. mysql_ping与mysql长连接
  7. cocos2d-x游戏开发(三)无限滚动地图
  8. 网络游戏外挂核心封包揭密
  9. live555 源码分析:子会话 SDP 行生成
  10. 高级数据结构与算法 | LRU缓存机制(Least Recently Used)