文档章节

mysql的order by隐形陷阱

A灵云A
 A灵云A
发布于 2017/02/17 15:56
字数 242
阅读 7
收藏 0

说来忏愧,做了5年php,以为php+mysql网站开发已经完全掌握了,谁知道今天被个bug打脸!

bug描述:展示用户数据时,按年龄分页排序,结果发现有数据重复的情况

我弄了两小时,做各种测试都没搞明白是什么原因导致的。

后来记录下sql日志,拿同样一条sql放到数据库运行结果发现:数据和php查询的不一样。

完全一样的sql,返回就是不一样,后来想到这些数据有个共同点,排序字段:年龄字段的值一样,我试着加上id排序,果然好了。

原来当排序字段相同时,返回排序结果不固定,查询的时候排序字段一定要增加一个不相同的字段

order by age desc,id desc

© 著作权归作者所有

共有 人打赏支持
A灵云A
粉丝 1
博文 40
码字总数 8517
作品 0
海淀
程序员
mysql group_concat合并行用法和问题

还有分隔符还可以自定义,默认是以“,”作为分隔符,若要改为“ ”,则使用SEPARATOR来指定, 例如: mysql> SELECT student_id, GROUP_CONCAT(courses_id SEPARATOR ' ') AS courses FROM s...

豆花饭烧土豆
2016/09/08
9
0
Mysql order by与limit混用陷阱

在Mysql中我们常常用order by来进行排序,使用limit来进行分页,当需要先排序后分页时我们往往使用类似的写法select * from 表名 order by 排序字段 limt M,N。但是这种写法却隐藏着较深的使...

architect刘源源
03/05
0
0
MySQL函数GROUP_CONCAT

该函数返回带有来自一个组的连接的非NULL值的字符串结果。该函数是一个增强的Sybase SQL Anywhere支持的基本LIST()函数。 语法结构: GROUPCONCAT([DISTINCT] expr [,expr ...] [ORDER BY {u...

舆图易稿
2015/01/07
0
0
mysql隐式转换造成索引失效的事故总结

隐式转换导致索引失效.这一点应当引起重视.也是开发中经常会犯的错误. 由于表的字段tumdn定义为varchar2(20),但在查询时把该字段作为number类型以where条件传给mysql,这样会导致索引失效. 错...

lover007
2014/03/07
0
0
关于 MySQL 8.0 新特性“隐藏索引”的一点思考

MySQL 8.0有一个称为“隐藏索引”的新功能,它允许快速启用/禁用MySQL Optimizer使用的索引。 在此分享一些对这个新功能的首次使用经验和想法。 对我们有什么用? 一是如果你想删除一个索引,...

andylhz
2016/11/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

可爱的python测试开发库(python测试开发工具库汇总)

欢迎转载,转载请注明来源: github地址 谢谢点赞 本文地址 相关书籍下载 测试开发 Web UI测试自动化 splinter - web UI测试工具,基于selnium封装。 链接 selenium - web UI自动化测试。 链...

python测试开发人工智能安全
56分钟前
2
0
Shiro | 实现权限验证完整版

写在前面的话 提及权限,就会想到安全,是一个十分棘手的话题。这里只是作为学校Shiro的一个记录,而不是,权限就应该这样设计之类的。 Shiro框架 1、Shiro是基于Apache开源的强大灵活的开源...

冯文议
今天
1
0
linux 系统的运行级别

运行级别 运行级别 | 含义 0 关机 1 单用户模式,可以想象为windows 的安全模式,主要用于修复系统 2 不完全的命令模式,不含NFS服务 3 完全的命令行模式,就是标准的字符界面 4 系统保留 5 ...

Linux学习笔记
今天
2
0
学习设计模式——命令模式

任何模式的出现,都是为了解决一些特定的场景的耦合问题,以达到对修改封闭,对扩展开放的效果。命令模式也不例外: 命令模式是为了解决命令的请求者和命令的实现者之间的耦合关系。 解决了这...

江左煤郎
今天
3
0
字典树收集(非线程安全,后续做线程安全改进)

将500W个单词放进一个数据结构进行存储,然后进行快速比对,判断一个单词是不是这个500W单词之中的;来了一个单词前缀,给出500w个单词中有多少个单词是该前缀. 1、这个需求首先需要设计好数据结...

算法之名
昨天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部