MySQL изменить выберите результат с вставкой
Я использую insert into table2 select from table1
заявление.
table2
имеет немного больше полей, чем table1
, Как я могу заполнить дополнительные поля другими значениями в дополнение к тем из результата выбора.
table1
имеет col1, col2, col3 table2 has col1, col2, col3, col4, col5, col6
col4 и col5 в таблице2 будут использовать измененные значения из col2 и col3 .
пример:
tabl1.col2
имеет значение tag 6512
а также tabl1.col3
имеет значение bin location
col4
в table2
будет использовать частичное значение bin
из таблицы1.col3 и "6512" из таблицы1.col2
так table2.col4
будет bin 6512
SQL:
insert into table2(col1, col2, col3, col4, col5) select * from table1 (and add values for col4 and col5)
Любая помощь приветствуется.
1 ответ
Хорошо, ответ может быть разбит на 2 части, я думаю.
- Как я могу сгенерировать 2 дополнительных столбца в моем суб-выборе.
- Как я могу манипулировать данными в некоторых столбцах
table1
прежде чем поместить результат указанных манипуляций вtable2
Точка 1:
В вашем подпункте вы можете сгенерировать 3 дополнительных столбца так же просто, как этот.
INSERT INTO table2 (col1, col2, col3, col4, col5)
SELECT *, 'dummy1', 'dummy2' FROM table1
Это, конечно, просто демонстрирует, что вы можете придумать данные для двух пропущенных столбцов.
Point2:
Так что теперь вам нужно прочитать раздел MySQL Manual - String functions (я не пишу это для вас)
Здесь вы увидите, что вместо простого кодирования данных для пропущенных столбцов вы можете использовать значения любого столбца из таблицы1, выбирать из него биты и объединять биты вместе.
Ищите SUBSTRING и INSTR и так далее. Это позволит вам построить недостающие поля из существующих столбцов.
Проверяйте условие sub select отдельно, пока оно не выдаст требуемый результат.