按序号排序的位置不产生预期的输出

t2a7ltrp  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(347)

更新
我有一个按顺序排列索引的表:

fsym_id, currency, x, y, z,

按顺序排列

currency, fsym_id, x, y, z

我想按正确的顺序提取索引的名称。
我试着做到以下几点:

set session group_concat_max_len = 1000000;
select GROUP_CONCAT(CONCAT("'",COLUMN_NAME,"'"))
from INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'table'
AND TABLE_SCHEMA = 'schema'
ORDER BY ORDINAL_POSITION

但这给了我列的顺序。如何修改它以返回索引的顺序?

42fyovps

42fyovps1#

如果您想在 GROUP_CONCAT() 你必须把 ORDER BY 该函数中的选项。你的 ORDER BY 子句用于对行进行排序;因为您只返回一行,所以没有效果。
而且,也没有必要使用 CONCAT() 内部 GROUP_CONCAT() . 如果你给多个值,它们会自动连接起来。

select GROUP_CONCAT("'",COLUMN_NAME,"'" ORDER BY ORDINAL_POSITION)
from INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'table'
AND TABLE_SCHEMA = 'schema'

相关问题