gpt4 book ai didi

MySQL ORDER BY 子句行为不正确

转载 作者:行者123 更新时间:2023-11-29 11:55:03 24 4
gpt4 key购买 nike

我有一个查询,其中我正在对日期和时间列的数据进行排序。我有五个具有相同日期和时间的记录。所有记录都按照排序和主键正常排列。但我添加的最后一条记录跳到了该位置的顶部。我不知道为什么会发生这种情况。

我的查询是:

SELECT table1.* , table2.name AS name1, table2.date AS date1, 
table2.start_time AS time1, table2.end_time AS time2
FROM table1 LEFT JOIN
table2
ON table2.id = table1.id1
WHERE table1.id2 = '604'
ORDER BY table1.date ASC, table1.start_time ASC

另附上记录截图。顶部记录具有最新的 ID,但它位于顶部。图像中的所有这些记录都具有相同的日期和时间。

enter image description here

最佳答案

我不能 100% 确定您为何感到困惑。如果五行上的datetime 列都具有相同的值,则可以按任意顺序返回它们。

如果您还希望按 id 排序,请将其包含在 order by 中:

ORDER BY table1.date ASC, table1.start_time ASC, table1.id

您似乎对 order by 有一些“稳定”排序的概念。稳定排序是指对于具有相同值的键,保持数据的原始顺序。然而,这在 SQL 中是不可能的,因为表代表无序集。没有order by就没有排序。

关于MySQL ORDER BY 子句行为不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33344174/

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