gpt4 book ai didi

mysql - 没有order by子句时先返回哪个字段?

转载 作者:太空宇宙 更新时间:2023-11-03 12:07:40 24 4
gpt4 key购买 nike

MYSQL 中没有order by 子句时先返回哪些行?

SELECT * FROM table;

查看 phpmyadmin,它似乎首先使用最新数据对我的数据进行排序,即使我没有带有时间戳的字段。默认排序是什么?是否基于隐藏字段?

/希望这足够清楚

垫子

最佳答案

如果不指定 ORDER BY 子句,则返回行的顺序未定义;数据库引擎可以按照它喜欢的任何顺序返回它们。这可能是它们被插入的顺序,或者它可能会尝试按照它们在磁盘上出现的顺序返回行以最小化查找,或者它可能会在每个查询中以不同的随机顺序返回它们。 (当然,任何理智的引擎都不可能对行进行随机排序;这是一个极端的例子,只是为了说明数据库引擎可以做一些奇怪的事情并且仍然符合 SQL 规范。)

此外,不能保证在您下次发出相同查询时顺序相同,也不能保证这方面的行为在不同版本的数据库引擎中保持相同。 (例如,升级 MySQL 可能会改变返回行的顺序!)

如果您需要按特定顺序排列的行,则必须使用 ORDER BY。依赖行的默认排序是极其脆弱的。

进一步阅读:What is the default order of records for a SELECT statement in MySQL?

关于mysql - 没有order by子句时先返回哪个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25736389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com