如何在集合中按序列排序的连接名称(这是一个变量,我将这些逗号分隔为这样的" 4,3,2")?到目前为止,名称是由id" 2,3,4"订购的。这是我的子查询。
SELECT GROUP_CONCAT(t.name SEPARATOR ',') FROM table t WHERE find_in_set(t.id, "4,3,2") > 0
答案 0 :(得分:2)
您可以在order by
函数中使用group_concat
按照find_in_set
中{id}的相同顺序对名称进行排序,find_in_set
返回匹配值的索引,例如id => 4指数将是一个id => 3索引将为2,因此您可以使用find_in_set
SELECT
GROUP_CONCAT(t.name ORDER BY FIND_IN_SET(id, "4,3,2") SEPARATOR ',' )
FROM t
WHERE FIND_IN_SET(t.id, "4,3,2") > 0