Mysql: выбор нескольких столбцов с помощью like

У меня есть много столбцов, которые имеют форму: rp_id_1 rp_id_2 и так далее. Я хочу получить данные по этим конкретным столбцам. На форуме я вижу предложенный ниже тип запроса:

"SELECT column_name
FROM information_schema.columns
WHERE table_name='loc_tbl'
AND column_name LIKE 'rp%'"

Однако это возвращает только имена столбцов, а не данные. Выход:

+-------------+
| column_name |
+-------------+
| rp_id_1     |
| rp_id_2     |
| rp_id_3     |

Что мне не хватает? Как мне вместо этого получить данные для всех этих столбцов? Спасибо.

используйте * вместо column_name

kgzdev 26.10.2018 08:51

Пробовал. Вместо этого он возвращает данные из таблицы information_schema.columns.

Nikhil Utane 26.10.2018 08:53

Для этого вам понадобится динамический SQL.

Tim Biegeleisen 26.10.2018 08:55
0
3
40
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Мы можем сделать это с помощью динамического MySQL. Из командной строки MySQL:

SELECT @cols := GROUP_CONCAT(column_name) FROM information_schema.columns
    WHERE table_name = 'loc_tbl' AND column_name LIKE 'rp%';
SET @query = CONCAT("SELECT ", @cols, " FROM lob_tbl");
PREPARE stmt FROM @query;
EXECUTE stmt;

Другие вопросы по теме