0 0

mysql 查询结果顺序疑惑0

user表:
主要字段,及数据如下:
id extUserId endpoint
20794 ext466769 ivmall
20795 ext466769 cns

查询语句:
SELECT * FROM user where extuserId='ext466769';
按上面应该查询出2条结果.但查询结果顺便变为
第一条: 20795,
第二条: 20794
id是自增的, 加入extUserid条件后,为什么没有升序排列?
此表数据2万+.
mysql 在查询顺序实现原理是什么?
2014年1月03日 11:07

5个答案 按时间排序 按投票排序

0 0

mysql必须指明排序的字段,SELECT * FROM user where extuserId='ext466769' order by id;不然默认是按数据库的插入修改先后排序的,比如你刚刚修改一条数据,则那条数据会排最前

2014年1月12日 15:40
0 0

需要顺序请使用orderby,无orderby的select返回的是集合,理论上无序的。(实际由于db的实现,有一定的顺序,但是这个是实现相关的,不依赖为上策)

2014年1月04日 10:46
0 0

请搞清楚一点, 数据库的理论是基于集合论的, 集合是无序的, 因此, 如果你没有显示的指定返回结果的排序顺序, 请不要假定返回数据结果的顺序.

2014年1月03日 17:05
0 0

myisam引擎按插入修改的先后排,innodb引擎根据主键大小排

2014年1月03日 16:01
0 0

默认的顺序 跟 主键索引的顺序一样吧。 你这种 不知道什么原因。  没遇到过。

最好重新创建表,测试一下。有时候很怪的错误出现。

2014年1月03日 11:40

相关推荐

Global site tag (gtag.js) - Google Analytics