Можете ли вы сделать выборочную вставку или обновление? - PullRequest
1 голос
/ 14 мая 2009

Я пытаюсь создать расписание и хочу выполнить следующий SQL-запрос:

У меня есть поля datebeginning и dateending и jobid, и я хочу добавить новый, только если не существует открытого для данного идентификатора задания, и если нет, я хочу, чтобы запрос обновил дату конца поля для данного идентификатора. Есть ли способ сделать это без использования PHP, чтобы сначала выбрать, а затем вставить или обновить?

Ответы [ 3 ]

5 голосов
/ 14 мая 2009

Использование INSERT ... ON DUPLICATE KEY UPDATE ..., см. http://dev.mysql.com/doc/refman/5.0/en/insert.html

1 голос
/ 14 мая 2009
INSERT INTO table (jobid, datebeginning, dateending) VALUES (1,'2009/03/03','2009/05/05')
ON DUPLICATE KEY UPDATE dateending='2009/06/06';
0 голосов
/ 14 мая 2009

Поскольку у вас есть вопрос, помеченный как MySQL, вы можете также рассмотреть возможность использования «REPLACE INTO», это, конечно, зависит от того, заполняете ли вы все поля, поскольку эта команда вставляет или удаляет и вставляет, а не обновляет только одно поле , Если предоставить все поля, REPLACE INTO будет работать так же хорошо.

http://dev.mysql.com/doc/refman/5.0/en/replace.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...