Порядок по порядковому положению не дает ожидаемого результата - PullRequest
0 голосов
/ 21 ноября 2018

ОБНОВЛЕНИЕ

У меня есть таблица с индексом в порядке:

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

Но это дает мне порядок столбцов.Как я могу изменить это, чтобы вернуть порядок индексов?

1 Ответ

0 голосов
/ 21 ноября 2018

Если вы хотите упорядочить значения в 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'
...