gpt4 book ai didi

php - mysql查询,自定义顺序

转载 作者:行者123 更新时间:2023-11-29 06:36:25 26 4
gpt4 key购买 nike

我有以下 mysql 查询:

SELECT 
col1,
col2,
col3
FROM
guests
WHERE
active = 1 AND
guestId IN (233, 255, 254, 226, 182, 231, 113, 121)

然而,当我得到结果时,我得到的是按 guestId(已编入索引)升序排列的结果(从 121 开始到 255 结束)。我需要按特定顺序在我的网站上显示结果。有什么方法可以绕过默认顺序吗?

谢谢。

最佳答案

您必须在 ORDER BY 子句中指定自定义顺序:

SELECT col1, col2, col3 FROM guests 
WHERE active = 1 AND guestId IN (233, 255, 254, 226, 182, 231, 113, 121)
ORDER BY FIND_IN_SET(guestId, '233,255,254,226,182,231,113,121');

内置的 FIND_IN_SET() 函数返回一个整数,它是第一个参数在列表中找到匹配项的位置。请注意,该列表是包含逗号分隔列表的单个字符串参数,而您的 IN() 谓词需要可变数量的参数。此外,IIRC 在您提供给 FIND_IN_SET() 的列表中不能有空格。

关于php - mysql查询,自定义顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24369883/

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