mysql排序区分大小写吗_MySQL的order by时区分大小写
Mysql 查询区分大小写
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'
MySQL默认的order by是不区分大小写的。 如果我们希望使用区分大小写的order by, 该怎么办呢?
先看一个例子。
表结构:
create table test_collate( `id` int NOT NULL AUTO_INCREMENT, `text` varchar(40) NOT NULL, PRIMARY KEY (`id`))ENGINE=MyISAM DEFAULT CHARSET=utf8;
插入数据:
insert into test_collate(`text`) values('aaa'),('bbb'),('AAA'),('BBB');
现在,如果我们按照text排序:
select * from test_collate order by text;
结果:
+----+------+| id | text |+----+------+| 1 | aaa || 3 | AAA || 2 | bbb || 4 | BBB |+----+------+
结果表明,大写的AAA和小写的aaa被认为是一样的, 都排在BBB和bbb前面。
为什么呢?
这里涉及到一个重要的概念,叫collate。 collate是一个与charset有关的概念, 它会影响到很多事情, 其中就包括排序的规则。
在《MySQL必知必会》中对collate有过详细的介绍, 我们就不在这里去介绍它了。
如何解决
解决方案有两个:
将test_collate表的collate改成case sensitive的
使用case sensitive的collate进行order by
这里,我们不希望改变表结构, 只是临时地order by一下, 因为使用方案2。
代码如下:
select * from test_collate order by text collate utf8_bin;
结果如下:
+----+------+| id | text |+----+------+| 3 | AAA || 4 | BBB || 1 | aaa || 2 | bbb |+----+------+
mysql排序区分大小写吗_MySQL的order by时区分大小写相关推荐
- mysql truncate 大表_MySQL删除大表时潜在的问题(drop table,truncate table)
case1,删除大表时,因为清理自适应hash索引占用的内容导致的MySQL服务挂起 case2,大表的随意Drop或者truncate导致MySQL服务的挂起 按照本文中的结论就是 MySQL5.6 ...
- mysql排序规则错误_MySQL中“非法混合排序规则”错误的疑难解答
阿波罗的战车 更改字符串的一个(或两者)的排序规则以使它们匹配,或者添加一个COLLATE从句到你的表情.这"校对"到底是什么?如下文所述字符集和排序规则:A 字符集是一组符号和编 ...
- mysql排序行号_mysql 取得行号后再排序
一.理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. TreeMap:基于红黑树(Red-Black tre ...
- mysql 排序开窗函数_MySQL中实现开窗函数
一.概述 row_number是数据库中常用的一个开窗函数,可以实现数据分区编号的功能,然而MySQL并不支持开窗函数.本文介绍了在MySQL中实现开窗函数的方法. 二.经典开窗函数 首先准备基础数据 ...
- mysql好玩的代码_mysql的order by与where出现的好玩事
INSERT INTO employees (emp_no, birth_date, first_name, last_name, gender, hire_date) VALUES (10001, ...
- mysql排序规则查看_MySQL 查看编码 排序规则
mysql show variables Variable_name Value collation_connection utf8_general_ci collation_database utf ...
- mysql写什么不同_mysql - 编译配置PHP时,两种配置写法有什么不同
在编译PHP时, --with-扩展库=DIR --enable-扩展库 这两种配置有什么不同 回复内容: 在编译PHP时, --with-扩展库=DIR --enable-扩展库 这两种配置有什么不 ...
- mysql删除表崩溃_MySQL在删除表时I/O错误原因分析
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 问题现象 最近使用sysbench测试MySQL,由于测试时间较长,写了一个脚本按prepare->run->cleanup的顺 ...
- mysql 记录更新时间_MySQL表内更新时,自动记录时间
1.创建表: create table test_time ( id int primary key not null, status varchar(24), create_time dateti ...
最新文章
- MySQL导出到excle显示不了_mysql导出select语句结果到excel文件遇到问题及解决方法_MySQL...
- 面试题6--利用前序和中序遍历重构二叉树--递归方法
- ES6的十大特性和认知
- 硬件知识:SSD越用越慢的原因,看完你就懂了!
- vue 滑动置顶功能_VUE 实现滚动监听 导航栏置顶的方法_蜡烛_前端开发者
- MacOS 12.0.X系统提示“未能装载磁盘映像,错误代码为109”的临时解决方法
- Java数据库接口JDBC入门基础讲座_JDBC基础教程之连接
- 基于用户名/密码认证和流量控制 安装pam_mysql(太麻烦,已放弃;以下步骤可以参考,有报错解决...
- 电子文档秒变手写文字:这个工具绝了!!
- MATLAB快捷键大全
- 苹果手机支持鸿蒙,除了苹果,这四款华为也能三年不卡,还能升级鸿蒙
- 修改IP的cmd命令
- [前端]-- jquery学习1
- Java可变参数的基本使用
- 该不该从大学退学的讨论
- 生成二维码的三种方式
- ZN-61A网络型PLC可编程控制器实训装置
- NAMD靶向分子动力学模拟Target molecular dynamic stimulation(附conf文件)
- 给LINUX安装JDK
- LeetCode 三维形体的表面积
热门文章
- nginx_lua vs nginx+php 应用场景
- progressDialog 为什么设置了setProgress()方法无反应?
- DevExpress 13.2.6源码、安装包、汉化包下载和教程
- 【转】XP下OpenProcess( PROCESS_ALL_ACCESS...失败
- Python爬取唐人街探案3豆瓣短评并生成词云
- 基于Python3-Pygame的坦克大战小游戏
- Gstreamer之可变长参数实现(十)
- Linux读写I2C设备I2C_RDWR用法
- Mac安装IntelliJ IDEA配置go语言环境
- 调试系列2:bugreport实战篇