|
|
|
| Добрый день.
Подскажите пожалуйста, можно ли одним запросом сделать апдейт записи и если запись не обнаружена, добавить её как новую?
Т.е. что-то противоположное запросу INSERT........ON DUPLICATE KEY UPDATE.
Примерно как-то так: UPDATE.......... ON MISSING INSERT | |
|
|
|
|
|
|
|
для: хулиган
(18.02.2010 в 23:54)
| | Как вариант при наличии первичного ключа или уникального индекса: REPLACE INTO ...
http://dev.mysql.com/doc/refman/5.1/en/replace.html | |
|
|
|
|
|
|
|
для: Meh
(19.02.2010 в 00:05)
| | Поля не уникальные (если только не ввести дополнительно в таблицу какой-нибудь auto-increment).
К сожалению, replace не работает с where (или я не смог его привязать к условию). А без where все встреченные записи с одинаковым значением поля будут изменены (мне нужно изменить только одно, которое удовлетворяет условию по двум другим полям | |
|
|
|
|
|
|
|
для: Хулиган
(19.02.2010 в 00:26)
| | Вот ты пишешь:
> сделать апдейт записи и если запись не обнаружена, добавить её как новую?
А как ты одну запись от другой отличаешь? | |
|
|
|
|
|
|
|
для: Хулиган
(19.02.2010 в 00:26)
| | Вы бы описали условия (и структуру задействованных полей) поподробнее.
А то как на кофейной гуще гадать. | |
|
|
|