pxz
@pxz
✔ Совет: Вам помогли? Отметьте ответы решением.

Изменить запись. Если её нет, то создать. Как сделать?

В общем:
Есть таблица, реализую систему голосования.
Во время голосования, при записи в БД хочу проверять, вдруг данный пользователь уже голосовал. Если запись имеется, надо отредактировать.

PHP, mysqli. Хочется решить задачу одним запросом.
  • Вопрос задан
  • 2637 просмотров
Решения вопроса 1
nazarpc
@nazarpc
Open Source enthusiast
Во-первых, можно сделать
INSERT INTO table
(
  `user`, `vote`
) VALUES (
  10, 5
)
ON DUPLICATE KEY UPDATE `vote` = VALUES(`vote`)

Работает если есть уникальный ключ, тогда при вставке новой записи с тем же ключем сработает ON DUPLICATE KEY UPDATE
Во-вторых есть REPLACE вместо INSERT, но я обычно пользуюсь первым вариантом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы