gpt4 book ai didi

php - 在 mysql 数据集中打乱一些结果

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

我有一个包含列名 order 的表,我想按 order 的升序对结果进行排序。很容易。

但是,order 也可以有零值,这在我的例子中是特殊的,因为零意味着这些项目以随机顺序被推到集合的后面(如果有多个零值行)。

也就是说:5 6 3 0 0 2 4 1 0 -> 1 2 3 4 5 6 0 0 0

每次我进行查询时,最后 3 行都会打乱顺序。我目前正在通过 PHP 解决这个问题,但我想知道这里的一些 SQL 专家是否可以为我提供 MySQL 解决方案的指导?

最佳答案

这是一个有效的 sqlfiddle :

SELECT *
FROM t
ORDER BY
(CASE WHEN id = 0 THEN 999999999 ELSE id END) ASC,
(SELECT RAND()) ASC

ORDER BY 中的SELECT 很重要。没有它,RAND() 函数只会被调用一次,并且不会随机播放。

关于php - 在 mysql 数据集中打乱一些结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31789390/

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