我怎样才能在集合中按它们的顺序排列连接的名称(它是一个变量,其中我有 ids 逗号分隔,如“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
我怎样才能在集合中按它们的顺序排列连接的名称(它是一个变量,其中我有 ids 逗号分隔,如“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
您可以使用order by
ingroup_concat
函数以与您的 id 相同的顺序对名称进行排序find_in_set
,find_in_set
返回匹配值的索引,例如 id => 4 索引将为 1 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