Select внутри insert - MySQL
Формулировка задачи:
В самом MySQL так работает
Но из php не проходит
$query="set @maxP1=(SELECT max(c) FROM table1)+1; insert into table1 (c, desc) value(@maxP1,'test');"
Пробовал просто всунуть номер
$query="set @maxP1=(SELECT max(c) FROM table1)+1; insert into table1 (c, desc) value(12345,'test');"
тоже не проходит из-за set
Пытался всунуть SELECT внутрь INSERT
сообщает о синтаксической ошибке
Если select внутрь insert никак не всунуть, то сделаю сначала запрос на максимальное значение и потом INSERT
SET @maxP1=(SELECT MAX(c) FROM table1)+1; INSERT INTO table1 (c, DESC) VALUE(@maxP1,'test');
INSERT INTO table1 (c, DESC) VALUE((SELECT MAX(c) FROM table1)+1,'test');
Решение задачи: «Select внутри insert»
textual
Листинг программы
INSERT INTO table1 (c, DESC) SELECT MAX(c)+1, 'test' FROM table1
Объяснение кода листинга программы
Представленный код выполняет две основные операции:
- Вставка данных в таблицу
table1с использованием синтаксисаINSERT INTO ... VALUES. В данном случае, в таблицуtable1вставляются значенияcиDESC. Значениеcсоответствует значениюMAX(c)+1, которое получается из таблицыtable1. ЗначениеDESCравно строке'test'. - Выборка данных из таблицы
table1с использованием синтаксисаSELECT. Здесь выбирается максимальное значениеcи добавляется единица, чтобы получить следующее уникальное значение. Затем это значение используется для вставки в таблицуtable1. Список операций: - Вставить значения
cиDESCв таблицуtable1. - Выбрать максимальное значение
cиз таблицыtable1. - Добавить единицу к максимальному значению
c. - Использовать полученное значение для вставки в таблицу
table1.