mysql字符串区分大小写么_mysql字符串区分大小写的问题-阿里云开发者社区
一、
1、 CREATE TABLE NAME(name VARCHAR(10));
对这个表,缺省情况下,下面两个查询的结果是一样的:
SELECT * FROM TABLE NAME WHERE name='clip';
SELECT * FROM TABLE NAME WHERE name='Clip';
MySql默认查询是不区分大小写的,如果需要区分他,必须在建表的时候,Binary标示敏感的属性.
CREATE TABLE NAME(
name VARCHAR(10) BINARY
);
2、 在SQL语句中实现 SELECT * FROM TABLE NAME WHERE BINARY name='Clip';
3、 设置字符集:
utf8_general_ci --不区分大小写
utf8_bin--区分大小写
二、 MySQL在windows下是不区分大小写的,将script文件导入MySQL后表名也会自动转化为小写,结果再 想要将数据库导出放到linux服务器中使用时就出错了。
因为在linux下表名区分大小写而找不到表,查了很多都是说在linux下更改MySQL的设置使其也不区分大小写,但是有没有办法反过来让windows 下大小写敏感呢。
其实方法是一样的,相应的更改windows中MySQL的设置就行了。
具体操作:
在MySQL的配置文件my.ini中增加一行:
lower_case_table_names = 0
其中 0:区分大小写,1:不区分大小写
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的; MySQL在Windows下都不区分大小写
http://www.jb51.net/article/61591.htm
当我们输入不管大小写都能查询到数据,例如:输入 aaa 或者aaA ,AAA都能查询同样的结果,说明查询条件对大小写不敏感。
解决方案一:
于是怀疑Mysql的问题。做个实验:直接使用客户端用sql查询数据库。 发现的确是大小不敏感 。
通过查询资料发现需要设置collate(校对) 。 collate规则:
*_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的
*_cs: case sensitive collation,区分大小写
*_ci: case insensitive collation,不区分大小写
解决方法。
1.可以将查询条件用binary()括起来。 比如:
select * from TableA where binary columnA ='aaa';
2. 可以修改该字段的collation 为 binary
比如:
ALTER TABLE TABLENAME MODIFY COLUMN COLUMNNAME VARCHAR(50) BINARY CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;
解决方案二:
mysql查询默认是不区分大小写的 如:
select * from some_table where str=‘abc';
select * from some_table where str='ABC';
得到的结果是一样的,如果我们需要进行区分的话可以按照如下方法来做:
第一种方法:
要让mysql查询区分大小写,可以:
select * from some_table where binary str='abc'
select * from some_table where binary str='ABC'
第二方法:
在建表时时候加以标识
create table some_table(
str char(20) binary
)
原理:
对于CHAR、VARCHAR和TEXT类型,BINARY属性可以为列分配该列字符集的 校对规则。BINARY属性是指定列字符集的二元 校对规则的简写。排序和比较基于数值字符值。因此也就自然区分了大小写。
以上通过两种方案解决了MySql查询不区分大小写的问题,希望对大家有所帮助,更多有mysql数据查询问题,请登录本站学习。
http://www.jb51.net/article/70884.htm
mysql字符串区分大小写么_mysql字符串区分大小写的问题-阿里云开发者社区相关推荐
- 不属于python标准库的是_《Python Cookbook(第2版)中文版》——1.10 过滤字符串中不属于指定集合的字符-阿里云开发者社区...
本节书摘来自异步社区<Python Cookbook(第2版)中文版>一书中的第1章,第1.10节,作者[美]Alex Martelli , Anna Martelli Ravenscro ...
- 线上阿里云mysql慢_MySQL · 案例分析 · RDS MySQL线上实例insert慢常见原因分析-阿里云开发者社区...
概述 insert慢是经常被问到的问题,笔者尝试在本文中对这个问题做一个分类梳理,列举的线上例子会做简化,希望对读者有所启发. 注意:因为阿里云MySQL线上实例还是以RDS 5.6为主体,本文的分析 ...
- mysql 分布式 安装_mysql分布式集群安装-阿里云开发者社区
概述 MySQL Cluster旨在提供具有高可用性和低延迟的MySQL兼容数据库. MySQL Cluster技术通过NDB(网络数据库)和NDBCLUSTER存储引擎实现,并为MySQL数据库系统 ...
- mysql 接口访问_MySQL的数据库访问接口-阿里云开发者社区
大部分流行的关系数据库产品采用的都是 C/S 架构.因此,应用程序要访问数据库的数据就必须和各种数据库客户端(也称为数据库访问接口)打交道.可以这么认为,每一种流行的编程语言都需要一个对应的数据库访问 ...
- mysql 修复表 阿里云_MySql数据表修复方法-阿里云开发者社区
mysqld进程在一个写入当中被杀死.计算机的意外关闭(例如,如果计算机掉电).一个硬件错误这章描述如何检查和处理在MySQL数据库中的数据损坏.如果你的表损坏很多,你应该尝试找出其原因!见G.1 调 ...
- mysql 参数调整_mysql需要调整的参数-阿里云开发者社区
Mysql需要调整的参数 #以 mysql 5.6版本示例讲解 一.Innodb设置 innodb_buffer_pool_size:保存innodb数据和索引在该buffer中, 对专用mysql服 ...
- mysql聚合函数要分组吗_mysql聚合函数和分组-阿里云开发者社区
文章实例的数据表,来自上一篇博客<mysql简单查询>:http://blog.csdn.net/zuiwuyuan/article/details/39349611 一. 聚合函数 聚合 ...
- mysql数据一条复制_Mysql 复制一条数据-阿里云开发者社区
从不同的表复制 insert into 表1 select * from 表2 where id =** ; 同一张表中复制(无主键) insert into 表1 select * from 表2 ...
- mysql providername_c#访问各数据库的providerName各驱动-阿里云开发者社区
如果为Mysql 数据库--->providerName="MySql.Data.MySqlClient"(没装mysql dotnet 安装版的话就得在C:\WINDOWS ...
- mysql my.cnf key_buffer_size_mysql5.6之key_buffer_size优化设置-阿里云开发者社区
key_buffer_size指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度.通过检查状态值Key_read_requests和Key_reads,可以知道key_buffer_siz ...
最新文章
- Microbiome:宏基因组分箱流程MetaWRAP分析实战和结果解读
- matlab 画一个矩形
- 【笔记】Linux就该这么学-第六课第四章
- github上关于机器学习的awesome项目(资源大全)
- 经典C语言程序100例之二七
- 分号与逗号的区别及举例_如何掌握分号的用法 和顿号有什么区别
- 云原生时代|分布式系统设计知识图谱(内含22个知识点)
- 洛谷——P2095 营养膳食
- ICCV 2019 | 旷视研究院提出行人搜索当前最佳新方法
- 分布式事务 - 梁飞的博客 - ITeye博客
- 如何利用Matlab完成数字1-9的语音识别
- java赛车小游戏代码_java版赛车小游戏源代码
- jmeter录制脚本
- camshift实现目标跟踪
- SpringBoot利用ELK实现日志收集
- 记录每天背的单词,准备考研。(2月21日)
- 如何部署在线团队协作系统kooteam(在线团队协作工具)
- windows10图片打开找不到内置图片查看器
- 12.26:有一种关系叫做“乔布斯与比尔盖茨”
- 科蒂斯控制器故障代码_科蒂斯控制器故障代码