MySQL - другой оператор UPDATE else INSERT - PullRequest
3 голосов
/ 21 августа 2009

Я занят выполнением запроса ОБНОВЛЕНИЕ / ВСТАВКА, но вот суть:

table PLAYERS {
    player_id
    game_id
    team_id
    position
    number
}

Что должно произойти, так это:

Я проверяю, есть ли запись, где player_id = '$player_id' AND game_id = '$game_id' AND team_id = '$team_id'.

Если есть, то происходит следующее:

position = '$position' AND number = '$number'

Можно ли как-нибудь это сделать, используя только язык запросов MySQL, без необходимости проверки PHP между запросами?

Ответы [ 3 ]

6 голосов
/ 21 августа 2009
INSERT INTO TABLE (COLUMNS) VALUES(FIELDS) UPDATE ON DUPLICATE KEY position = somevalue, number=number

1) Пытается вставить
2) Если есть запись с уникальным полем (первичный ключ, уникальный индекс и т. Д.), Обновите это поле.

0 голосов
/ 18 сентября 2009

Это не сработает, если это не в транзакции, или вы можете гарантировать, что одновременные запросы к БД не будут выполняться

0 голосов
/ 14 сентября 2009

Что ж, я исправил это с помощью нескольких операторов IF, чтобы определить, вставлять или обновлять.

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