Скажем, у меня есть следующая таблица:Вставка массы SQL на основе существующих значений в таблице?
таблица1
---------------------
| key | value |
---------------------
---------------------
| 0 | val0 |
---------------------
| 1 | val1 |
---------------------
| 2 | blah |
---------------------
Где ключ является целым числом первичного ключа, и значение является VARCHAR.
Теперь я хочу создать повторяющуюся строку для каждой существующей строки в таблице с помощью нового ключа. Значение каждой новой строки будет равно значению существующей строки, но с префиксом перед ней (с использованием CONCAT). Тем не менее, я хочу только запустить эту вставку, если в ней есть подстрока val
.
Так финальный стол должен выглядеть следующим образом:
---------------------
| key | value |
---------------------
---------------------
| 0 | val0 |
---------------------
| 1 | val1 |
---------------------
| 2 | blah |
---------------------
| 10 | pre_val0 |
---------------------
| 11 | pre_val1 |
---------------------
Есть ли способ, чтобы создать вставку о том, что может сделать такого рода вещи? Вот какой-то псевдо-код (который не работает), чтобы дать лучшее представление о том, чего я пытаюсь выполнить.
insert into table1 (key, value) values (key + 10, CONCAT('pre_', value))
where value like '%val%';
Есть ли способ достичь такого рода вещей?
Для всех целей и задач это мой реальный случай с упрощенными именами таблиц столбцов и значениями и меньшим количеством строк. Мой реальный случай будет выглядеть одинаково, но гораздо больше и длиннее. – jros