Существует способ, которым MySQL для проверки записи, которая идет на INSERT, является дубликатом или не использует:
INSERT ... ON DUPLICATE KEY UPDATE
Но, как говорится в документе: the KEY
для проверки это primary key
.И в моей ситуации мне нужно проверить tow fields (columns)
, чтобы убедиться, что он дублируется или нет. Моя структура таблицы:
auto_id user_id file_id file_status
1 1 12 1
2 3 12 0
3 1 17 1
4 4 31 1
5 1 41 0
6 4 31 0
7 1 18 1
8 5 11 0
9 1 10 0
Например: Может быть, как:
ON DUPLICATE user_id,file_id UPDATE file_status = 0;
if user_id and file_id which in one record were duplicate
, я буду update
file_status to 0
.
Большое спасибо !!
[обновление]
Итак, у меня естьчтобы сделать это в несколько шагов!?
Во-первых, выясните, существуют ли записи или нет:
SELECT auto_id FROM MyTable WHERE user_id='user_id' AND file_id='file_id'.
Во-вторых, решите ВСТАВИТЬ новую запись или ОБНОВИТЬ в соответствии с результатом SELECT!