gpt4 book ai didi

mysql - 为什么 SQL 查询的结果没有按我期望的顺序返回?

转载 作者:行者123 更新时间:2023-11-29 01:09:04 25 4
gpt4 key购买 nike

如果在表中插入项目,然后我写了一个查询,例如 select * from table,为什么结果不是我期望的顺序?

最佳答案

可以通过在语句中使用“Order by”子句来强制查询的顺序。 SQL 数据库实际上并不了解您放置事物的顺序,或按给定顺序存储数据。这意味着您需要告诉 SQL 您希望项目按什么顺序排列。例如:

Select * from Table
order by column1 desc

把它想象成把一些东西交给你的 friend 拿着 - 她稍后会把所有东西都给你,但同时她会把它存放在某个地方。她可能会在您不想为其他东西腾出空间时四处移动它,或者可能会按照您给她的相同顺序将它交还给她,但您没有告诉她要保持秩序,所以她不会.

数据库需要能够在后台移动事物,因此它们的构建方式本质上并不知道任何顺序 - 当您将其提供给数据库时,您需要知道顺序,以便您可以将它放入回到你想要的顺序。 order 子句允许 SQL 对数据强加一种顺序,但它不记得也没有自己的顺序。

要点:即使 SQL 在最后 100 万次没有 order by 语句的情况下以正确的顺序返回项目,它也不能保证它会这样做。即使表上存在聚簇索引,也不能保证结果按您期望的顺序返回。特别是当 SQL 版本发生变化时,不显式使用 order by 子句可能会破坏假设查询将按照他们想要的顺序进行的程序!

关于mysql - 为什么 SQL 查询的结果没有按我期望的顺序返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10999913/

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