[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запрос на UPDATE, а если нет записи - INSERT
Sylex
Если необходимо в таблице с id = 3 выполнить апдейт одного поля, все понятно:

Код
UPDATE table SET MyFileld = 'value' WHERE id = '3'


а если такой записи с id='3' не существует, можно сделать вставку автоматически?

Код
INSERT INTO table (MyField) VALUES ('value')


чтобы не приходилось выполнять 2 запроса...

типа IF (...)

_____________
Я думал я буду сеять добро, но у меня не получилось. Во-первых, мне помешали, во-вторых я сам отрекся от этой идеи.
Alchemist
так как вы это описали - нельзя, но можно сделать наоборот, как описано тут
jetistyum
Цитата(Sylex @ 13.7.2008, 14:48) [snapback]43285[/snapback]
Если необходимо в таблице с id = 3 выполнить апдейт одного поля, все понятно:

Код
UPDATE table SET MyFileld = 'value' WHERE id = '3'


а если такой записи с id='3' не существует, можно сделать вставку автоматически?

Код
INSERT INTO table (MyField) VALUES ('value')


чтобы не приходилось выполнять 2 запроса...

типа IF (...)

INSERT INTO table (MyField) VALUES ('value')
ON DUPLICATE KEY UPDATE table SET MyFileld = 'value' WHERE id = 3
Кажется примерно где-то так smile.gif
см доки тут
http://dev.mysql.com/doc/refman/5.0/en/ins...-duplicate.html
Sylex
thank clapping.gif
ПОЛУЧИЛОСЬ!!

_____________
Я думал я буду сеять добро, но у меня не получилось. Во-первых, мне помешали, во-вторых я сам отрекся от этой идеи.
Ghost
а чем REPLACE не подошел?
Sylex
Цитата(Ghost @ 13.7.2008, 21:24) [snapback]43300[/snapback]
а чем REPLACE не подошел?


REPLACE типа стандарт, но я никогда его не юзал... а

Код
INSERT ... ON DUPLICATE KEY UPDATE


понравился....

задал
Код
UNIQUE KEY `asdasd` (`pub_id`,`sub_member_id`)


и терь низя одинаковые записи делать с pub_id и sub_member_id... соответственно запрос:

Код
$r = @mail($v['email'], $subject, $headers, $content);
// записываем результат отправки сообщения
    $DB->query("INSERT INTO sb_logs
        (user_id, sub_id, pub_id, s_date, to_email, `status`)
        VALUES
        ('{$user_id}', '{$sub_id}', '{$pub_id}', '{$date}', '{$v['email']}', '{$r}')
        ON DUPLICATE KEY UPDATE `status` = '{$r}'");


it's work!!! smile.gif

_____________
Я думал я буду сеять добро, но у меня не получилось. Во-первых, мне помешали, во-вторых я сам отрекся от этой идеи.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.