У меня есть MySQL Сценарий, который запускается в php - когда пользователь входит в систему, он удаляет все старые токены, кроме самых последних 3.
DELETE tokens FROM tokens
LEFT JOIN (
SELECT id
FROM tokens
WHERE users_id = :user_id
ORDER BY access_time DESC
LIMIT 3) AS newest
ON tokens.id = newest.id
WHERE tokens.users_id = :user_id AND newest.id IS NULL
Это прекрасно работает Однако я попытался изменить его так, чтобы он работал только для всех токенов, для которых установлен тип «API» или «APP»
Таким образом, теоретически 1 пользователь может иметь 3 токена API и 3 жетона APP в одной таблице.
Я пытался изменить эту строку
WHERE tokens.users_id = :user_id AND newest.id IS NULL
на
WHERE tokens.users_id = :user_id AND newest.id IS NULL AND tokens.type = "API"
Однако, похоже, это не сработало, но на самом деле это просто не дает никаких результатов ... что я делаю не так?
В моих таблицах есть следующие поля:
ТОКЕНЫ: id users_id токен create_time тип access_time
ПОЛЬЗОВАТЕЛИ: идентификатор электронной почты пароль активен проверен create_time