【MySQL】如何让数据库查询区分大小写
问题描述
当我们输入不管大小写都能查询到数据,例如:输入 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】如何让数据库查询区分大小写相关推荐
- SQL Server数据库查询区分大小写、全半角——排序规则的应用(转载)
SQL Server数据库查询区分大小写.全半角--排序规则的应用 因为偶然的原因,需要在INNER JOIN联表时,让对应字段进行区分大小写的比较.而默认情况下建立的Sql Server数据库是不区 ...
- MySQL学习之数据库查询
数据库查询 一.基本查询语句 Select {* |<字段列表>} [ From <table1>,<table2>-- [where <expr>] ...
- mysql实验四数据库查询和视图_实验四 数据库查询和视图.doc
实验四 数据库查询和视图 测试过程:(实验中出现的问题.错误.解决方法) 问题一:新建查询,调试过程中出现提示无效行或列 问题二:新建查询,调试过程中出现第几行出现错误 解决办法:检查新建的查询,标点 ...
- mysqlselectdb php_PHP MySQL Select(数据库查询)
SELECT 语句用于从数据库中选取数据. 语法 SELECT column_name(s) FROM table_name 注释:SQL 语句对大小写不敏感.SELECT 与 select 等效.c ...
- mysql联合索引数据库查询数据会变慢_如何定位并优化慢查询SQL以及联合索引和索引多的弊端...
以下思路均以Mysql为例,不过SQL调优通用的 根据慢日志定位慢查询SQL: 使用show variables like '%quer%';主要查看slow_query_log,slow_query ...
- MySQL 常见的数据库查询性能优化手段
简单介绍了一些常见MySQL数据库优化手段,比如减少数据访问.使用索引.使用关联查询等等. 文章目录 1 优化数据访问 2 重构查询 2.1 优化子查询 2.2 优化GROUP BY和DISTINCT ...
- mysql不同服务器数据库查询_不同服务器不同数据库两张表连接查询使用经验
使用SQL语句连接查询位于两个不同的服务器不同的数据库中的两张表,最初将SQL语句写成以下形式select*fromProduct pinnerjoin opendatasource('SQLOLED ...
- mysql实验四数据库查询和视图_数据库-第四次实验报告-视图-t-sql语句
实验十报告 创建视图 实验目的 1.掌握创建视图的SQL语句的用法. 2.掌握使用企业管管理器创建视图的方法. 3.掌握使用创建视图向导创建视图的方法. 4.掌握查看视图的系统存储过程的用法. 5.掌 ...
- 数据库查询张三的MYSQL成绩_MySQL数据库查询练习题
练习题目 查询" 01 "课程比" 02 "课程成绩高的学生的信息及课程分数 1.1 查询同时存在" 01 "课程和" 02 &q ...
最新文章
- #串口通信超时处理_简单通信协议
- PgSQL · 应用案例 · 阿里云 RDS PostgreSQL 高并发特性 vs 社区版本
- [搜索]一种分词的实现(2)
- SAP 电商云 Spartacus UI feature level directive 的工作原理
- html 如何去除浮动,CSS浮动? 如何清除浮动?
- 学习 Spring Boot:(二十九)Spring Boot Junit 单元测试
- Nifi 怀疑出个bug 流程中的实时数据结果痕迹没有不是实时的,是之前的。以及相应解决办法。
- 卸载iis express后80端口仍然被占用的解决方法
- Flutter实战一Flutter聊天应用(二十)
- 除了敲代码,程序员还需要哪些必备技能?
- ubuntu libxml2 使用
- 最新可用的快速FLV转MP4方法,解决转换后无声音及视频不流畅问题
- 【深度学习之美】山重水复疑无路,最快下降问梯度(入门系列之七)
- php 并列排名,MySQL并列排名和顺序排名查询
- 5.3.5—二叉查找树—Convert Sorted List to Binary Sear Tree
- 13计算机组装,舞阳中专2012-13年度《计算机组装与维修》期中考试试题
- 苹果越狱手机知识大全
- matlab dae,matlab用ode15数值计算微分代数方程(DAE)的问题
- 这才是增加收录的核心操作方向
- 变色龙给驱动打补丁实现USB驱动无需USBInjectAll.kext
热门文章
- CodeForces - 859C Pie Rules(dp+博弈)
- php如何设置断点调试,使用 PHPStorm + Xdebug 实现断点调试
- 使用二维码识别技术的好处_人脸识别技术什么场景都能使用吗?
- EOJ_1007_环形双向链表
- HDU4604(双端队列与DP)
- mysql_ping与mysql长连接
- cocos2d-x游戏开发(三)无限滚动地图
- 网络游戏外挂核心封包揭密
- live555 源码分析:子会话 SDP 行生成
- 高级数据结构与算法 | LRU缓存机制(Least Recently Used)