gpt4 book ai didi

sql - 加入时确保结果顺序,不使用 order_by

转载 作者:行者123 更新时间:2023-12-01 00:08:14 25 4
gpt4 key购买 nike

我有一个 mysql 插件,它将按指定的顺序返回结果集。部分结果集包含一个外键,我想加入该键,同时确保顺序保持不变。

如果我这样做:

    select f.id, 
f.title
from sphinx s
inner join foo f on s.id = f.id
where query='test;filter=type,2;sort=attr_asc:stitle';

看起来我正在按照 sphinx 返回结果的顺序取回结果。这是 mysql 的怪癖,还是我确信联接不会更改顺序?

最佳答案

如果您需要保证查询结果的顺序,请使用 ORDER BY。其他一切都是一厢情愿。

为了深入了解这一点,许多数据库划分执行步骤的方式可能会根据查询的执行计划、可用 CPU 的数量以及数据库可以推断为安全的优化类型而有所不同。如果查询在多个线程上并行运行,结果可能会有所不同。如果解释计划发生变化,结果可能会有所不同。如果多个查询同时运行,结果可能会有所不同。如果某些数据缓存在内存中,结果可能会有所不同。

如果您需要保证订单,请使用 ORDER BY。

关于sql - 加入时确保结果顺序,不使用 order_by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1580363/

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