为了账号安全,请及时绑定邮箱和手机立即绑定

SELECT...LIMIT查询出的结果是倒序的了

为何我用SELECT...LIMIT查询出的结果是倒序的?从尾部开始计算顺序的呢?  提前谢谢高手解惑,谢谢: 

mysql> SELECT * FROM id4;

+----+-------+------+ 

| id | name  | sex  |  

+----+-------+------+ 

|  1 | Diego | UN   |  

|  2 | Sam   | M    |  

|  3 | Tom   | F    |  

|  4 | Mark  | UN   |  

|  5 | Kim   | UN   | 

|  6 | Kate  | F    |  

|  7 | Rose  | F    |  

|  8 | Joe   | UN   |  

+----+-------+------+ 

8 rows in set (0.00 sec)


mysql> SELECT id,name FROM id4 LIMIT 2,3;

+----+------+

| id | name |

+----+------+

|  6 | Kate |

|  5 | Kim  |

|  4 | Mark |

+----+------+

3 rows in set (0.00 sec)


mysql> SELECT id,name FROM id4 LIMIT 2;

+----+-------+

| id | name  |

+----+-------+

|  1 | Diego |

|  8 | Joe   |

+----+-------+

2 rows in set (0.00 sec)


正在回答

2 回答

插入数据向数据库中,可能自然顺序会和插入的时候不一样,这个和数据类型或是否建立索引有关

如果你要确保limit取出来的是按照你期待的,最好配合Order by使用。我估计你这个表是按照name排序了~ 所以取出来的顺序是 

 1 | Diego | UN  

 8 | Joe   | UN  

|  6 | Kate  | F    | 

|  5 | Kim   | UN   |

|  4 | Mark  | UN   |  

|  7 | Rose  | F    |  

|  2 | Sam   | M    |  

|  3 | Tom   | F    |  

猜测的~


1 回复 有任何疑惑可以回复我~
#1

Lohh 提问者

谢谢您
2017-05-19 回复 有任何疑惑可以回复我~

对于 MyISAM 表 MySQL Select 默认排序是按照物理存储顺序显示的,InnoDB 表会按主键的顺序排列

0 回复 有任何疑惑可以回复我~
#1

Lohh 提问者

谢谢您
2017-05-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

SELECT...LIMIT查询出的结果是倒序的了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信