SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 02.09.2020 16:06:10

webbot
Участник
Зарегистрирован: 02.09.2020
Сообщений: 2

Как использовать значение ячейки в качестве названия столбца?

Приветствую.
Столкнулся с интересной задачей.

Есть таблица t1, в ней много строк:

id|col_name|num
1|nazvanie2|0
2|nazvanie7|0
3|nazvanie8|0
.....

И есть таблица t2 состоящая из одной строки, но множества столбцов

nazvanie1|nazvanie2|nazvanie3|nazvanie4|....
100|200|300|500|.....

Моя задача сделать запрос UPDATE для первой таблицы (t1) и проставить в столбец num значение из таблицы t2, где название столбца в таблице t2 совпадает с col_name таблицы t1

Пытался сделать так:

UPDATE t1 SET num = (SELECT CONCAT('t2.',t1.col_name) FROM t2 LIMIT 1 )

но к сожалению такая конструкция не работает ...

Буду вам премного благодарен если подскажите как сформировать правильный запрос. Спасибо!

Неактивен

 

#2 02.09.2020 16:41:54

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2319

Re: Как использовать значение ячейки в качестве названия столбца?

Одним запросом не получится. Пройдите по всем значениям из t2 в цикле и сделайте update'ы соответствующих строк в t1.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 02.09.2020 17:04:26

webbot
Участник
Зарегистрирован: 02.09.2020
Сообщений: 2

Re: Как использовать значение ячейки в качестве названия столбца?

Спасибо. Видимо действительно придется делать цикл в PHP и апдетить каждую строку в отдельности.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson