MySQL默认情况下的排序方式

1、问题:

今天在做开发时碰到了一个问题,使用了最简单的sql语句查询,条件中也只有一个条件,语句类似如下:

SELECT * FROM `people` WHERE school_id = '1234';

查询出的结果为3条,本以为应该按照数据库的插入顺序查出来,即按照主键ID的升序排列,但是得出的结果却不是,确实按照了其中一个字段(例:age)的值升序排列,

这就很奇怪了

2、原因:

经过多次验证,发现了个问题,就是school_id字段和age字段其实已经被用来作为唯一索引,

idx_school_id_age: 'school_id','age'

在把索引删除后,查询出的结果就按照了默认的主键ID升序排列,加上这个索引,就按照了age字段升序排列,最后没办法,只能把sql改为:

SELECT * FROM `people` WHERE school_id = '1234' ORDER BY id asc;

posted @ 2023-08-29 15:04  烟花火的人生  阅读(441)  评论(0编辑  收藏  举报