MySQL Insert on Duplicate Key

Я создаю систему оценки, и я хочу вставить новую строку, если name поле уже не содержит name я хочу вставить, и если это действительно существует, я хочу увеличиться count поле 1

Например, если я ссорюсь name 'Tom' и я пытаемся вставить другую строку с name 'Tom, затем я хочу +1 для поля count на строке, которая уже существует.

Если строка с name 'Tom' не существует, я хочу вставить новый и установить count к 1.

Я знаю, что мог сделать это приблизительно с 3 SQL-операторами и некоторыми if операторы, но это замедлило бы сценарий, поскольку 2/3 sql команды выполняются.

Какие-либо идеи?Спасибо!

10
задан joewiz 1 July 2012 в 17:05
поделиться

1 ответ

см. INSERT ... ON DUPLICATE KEY UPDATE

Если указать ON DUPLICATE KEY UPDATE и вставить строку, которая приведет к дублированию значения в индексе UNIQUE или PRIMARY KEY, то выполняется UPDATE старой строки.

e.g.

INSERT INTO table (name,counter) VALUES ('Bob', 1)
  ON DUPLICATE KEY UPDATE counter=counter+1
12
ответ дан 4 December 2019 в 00:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: