这是带有IN子句的简单查询。但是问题是我需要以ID的相同顺序获取输出。
SELECT GROUP_CONCAT(username) as users FROM usertable WHERE usr_id IN (54,68,46)
例如,如果我通过了54、68、46,则具有usr_id 54的行应首先出现,然后是68,然后是46。有什么办法可以在MySQL中实现呢?

最佳答案

我们可以在order by子句上使用FIND_IN_SET来按相同的顺序获取值。

SELECT `username` as users FROM usertable WHERE usr_id IN (54,68,46) ORDER BY FIND_IN_SET(`usr_id`,"54,68,46")

但是我不知道如何以相同的顺序GROUP_CONCAT。如果有人用这种简单的方法给出答案,我可以接受。

关于MySQL按IN子句中的值的相同顺序排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11734524/

10-09 20:22