按集合中的值序列排序
Order by sequence of values in set
我怎样才能将名称按其在集合中的顺序排序(它是一个变量,其中我用逗号分隔 ID,如“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
您可以在 group_concat
函数中使用 order by
对名称进行排序,与在 find_in_set
、find_in_set
returns 索引中的 ID 的顺序相同像 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
我怎样才能将名称按其在集合中的顺序排序(它是一个变量,其中我用逗号分隔 ID,如“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
您可以在 group_concat
函数中使用 order by
对名称进行排序,与在 find_in_set
、find_in_set
returns 索引中的 ID 的顺序相同像 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