我有一个MySQL查询,看起来类似于以下如何在Group_Concat列上排序时使用TRIM?
SELECT
ta.*,
GROUP_CONCAT(tb.value) AS `grouped_value`
FROM
test.test_a ta
INNER JOIN test.test_b tb ON tb.id = ta.t_id
GROUP BY ta.t_id
ORDER BY `grouped_value` ASC
我用GROUP_CONCAT
函数创建一个逗号分隔值,别名为grouped_value
。上面的查询按照原样运行,但grouped_value
可能包含前导空格和排序最终结果。我试图使用TRIM
函数,但在这种情况下似乎不起作用。
SELECT
ta.*,
GROUP_CONCAT(tb.value) AS `grouped_value`
FROM
test.test_a ta
INNER JOIN test.test_b tb ON tb.id = ta.t_id
GROUP BY ta.t_id
ORDER BY TRIM(`grouped_value`) ASC
错误消息
错误代码:1247 - 参考 'grouped_value' 不支持(参照组功能)
是否有可能使用TRIM
,同时在分选组连接列?如果不是,这个错误的解决方法是什么?
为什么在不使用GROUP BY的情况下使用聚合函数GROUP_CONCAT()?你真的想要什么输出?您当前的查询似乎没有意义。 –
@TimBiegeleisen我加了'GROUP BY',看起来我错过了它,而写了问题 – Wondercricket
修剪之前分组? 'GROUP_CONCAT(trim(tb.value))as grouped_value' – dognose