Я создаю систему оценки, и я хочу вставить новую строку, если name
поле уже не содержит name
я хочу вставить, и если это действительно существует, я хочу увеличиться count
поле 1
Например, если я ссорюсь name
'Tom' и я пытаемся вставить другую строку с name
'Tom, затем я хочу +1
для поля count
на строке, которая уже существует.
Если строка с name
'Tom' не существует, я хочу вставить новый и установить count
к 1.
Я знаю, что мог сделать это приблизительно с 3 SQL-операторами и некоторыми if
операторы, но это замедлило бы сценарий, поскольку 2/3 sql команды выполняются.
Какие-либо идеи?Спасибо!
см. 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