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 части, я думаю.

  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 отдельно, пока оно не выдаст требуемый результат.

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