gpt4 book ai didi

php - MySql 按字段排序最后上传的第一个在有序 ID 的前面

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

我正在尝试订购一些数据并使用 ORDER BY FIELD。给定 id 的顺序看起来不错,但是当我在数据库中添加另一条记录时,该记录恰好位于有序 id 数据的前面。当我添加另一条记录时,我希望该记录成为有序记录之后的最后一条记录。我使用的代码如下:

$result = mysqli_query($conn, 'SELECT * FROM echipa ORDER BY FIELD(id_profesor, 14,17,16,24,25,22,26,19,20,21,18,23)');

最佳答案

无需重复表达式的一种解决方案是将 0 转换为 NULL,然后将 NULL 转换为其他值:

ORDER BY COALESCE(NULLIF(FIELD(id_profesor, 14,17,16,24,25,22,26,19,20,21,18,23), 0), 9999)

另一种方法是使用降序排序将 NULL 放在最后的事实:

ORDER BY FIELD(id_profesor, 14,17,16,24,25,22,26,19,20,21,18,23) DESC

但是,您可能希望反转列表的顺序以使行保持原始顺序。

或者,如果你真的想变得更花哨,你可以这样做:

ORDER BY - NULLIF(FIELD(id_profesor, 14,17,16,24,25,22,26,19,20,21,18,23), 0) DESC

我认为这种情况下的意图相当难以理解。

关于php - MySql 按字段排序最后上传的第一个在有序 ID 的前面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35758445/

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