Я хочу посмотреть с запросом SQL UPDATE
, был ли уже использован идентификатор.В ответе также следует различать недействительный идентификатор и уже использованный идентификатор.
Мой подход на примере:
Хранение избирателей в базе данных SQL.Таблица вызовов Voters
со столбцами vote_id
(уникально), voted
(0 или 1) и already_voted
(0 или 1):
- Голосующий
x
голосует за первоговремя и имеет действительный vote_id
: проверка voted
. x
приходит во второй раз: отклонение путем проверки already_voted
. x
приходит в третий раз:voted
и already_voted
оба проверены.Нет обновлений.Но я хочу «не обновлять» сценарий, когда vote_id
недействителен. y
не имеет действительного vote_id
: нет обновления.
У меня нетпонять, почему voted
возвращается к 0, когда already_voted
изменяется с 0 на 1:
UPDATE Voters
SET already_voted = CASE WHEN voted = 1 THEN 1 END,
voted = CASE WHEN voted = 0 THEN 1 END
WHERE vote_id='12345'
Я также открыт для совершенно другого подхода.Спасибо за ваше время.