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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д