MySQL - CONCAT - есть ли способ объединить строку и использовать ее в качестве переменной? - PullRequest
0 голосов
/ 05 ноября 2018

Низкие часы на MySQL, но начинают прощупывать края. Stackoverflow отличный ресурс - спасибо всем.

Экспериментируя с Concat, я упал из-за этой проблемы. Я знаю, что будет выход, но я просто не могу понять это.

Мой пример:

set @strokes_hole_10 = 6;
set @x = 10;
set @strokes = concat('strokes_hole_',@x);
select @strokes;

Я ищу, чтобы @strokes представлял собой значение переменной 6, а не значение переменной "strokes_hole_10".

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

Смотрю ли я на подготовленные заявления как на путь?

Заранее спасибо за любую помощь.

1 Ответ

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

Если у вас есть имя столбца переменной, вам нужно будет использовать Динамический SQL :

set @strokes_hole_10 = 6;
set @x = 10;
set @strokes = concat('@strokes_hole_',@x); -- add @ to variable string

-- generate the query string
set @query_str = CONCAT('SELECT ', @strokes);

-- prepare statement using the query string
Prepare stmt From @query_str;

-- executes the prepared statement
Execute stmt;

-- clean up after execution
Deallocate Prepare stmt;

Результат

| @strokes_hole_10 |
| ---------------- |
| 6                |

Просмотр на БД Fiddle

...