В MySQL существует возможность получить данные из одной таблицы и вставить их в другую при помощи одного запроса.
Пусть есть таблица продуктов products:
id | name | unit | count |
---|---|---|---|
1 | Чай | гр | 1200 |
2 | Сахар | кг | 14 |
3 | Кофе | гр | 900 |
4 | Печенье | пачка | 26 |
И новая таблица products_gr, в которую нужно переместить только те продукты, которые измеряются в граммах. После вставки данных она должна выглядеть так:
id | name | count |
---|---|---|
1 | Чай | 1200 |
3 | Кофе | 900 |
Тогда запрос вставки данных в таблицу products_gr из таблицы products будет выглядеть следующим образом:
INSERT INTO products_gr (id, name, count) SELECT id, name, count FROM products WHERE unit = 'гр';
При составлении запроса важно контролировать, чтобы количество полей в INSERT и SELECT совпадало, а также совпадали типы полей.