Select внутри insert - MySQL

Узнай цену своей работы

Формулировка задачи:

В самом MySQL так работает
SET @maxP1=(SELECT MAX(c) FROM table1)+1;
INSERT INTO table1 (c, DESC) VALUE(@maxP1,'test');
Но из 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
INSERT INTO table1 (c, DESC) VALUE((SELECT MAX(c) FROM table1)+1,'test');
сообщает о синтаксической ошибке Если select внутрь insert никак не всунуть, то сделаю сначала запрос на максимальное значение и потом INSERT

Решение задачи: «Select внутри insert»

textual
Листинг программы
INSERT INTO table1 (c, DESC)
SELECT MAX(c)+1, 'test' 
FROM table1

Объяснение кода листинга программы

Представленный код выполняет две основные операции:

  1. Вставка данных в таблицу table1 с использованием синтаксиса INSERT INTO ... VALUES. В данном случае, в таблицу table1 вставляются значения c и DESC. Значение c соответствует значению MAX(c)+1, которое получается из таблицы table1. Значение DESC равно строке 'test'.
  2. Выборка данных из таблицы table1 с использованием синтаксиса SELECT. Здесь выбирается максимальное значение c и добавляется единица, чтобы получить следующее уникальное значение. Затем это значение используется для вставки в таблицу table1. Список операций:
  3. Вставить значения c и DESC в таблицу table1.
  4. Выбрать максимальное значение c из таблицы table1.
  5. Добавить единицу к максимальному значению c.
  6. Использовать полученное значение для вставки в таблицу table1.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5