В настоящее время я использую следующее решение для проверки количества записей, а затем удалить последний из них, который превышает лимит. Псевдокод:Проверить количество строк и удалить последний, который превышает лимит
var count = SELECT COUNT(*) AS count FROM table WHERE user_id = ?;
if (count > LIMIT) { // e.g [LIMIT == 5]
DELETE FROM table WHERE user_id = ? ORDER BY last_activity LIMIT 1;
}
Проблема в том, что я не очень рад этому решению. Я бы предпочел или предпочел сделать все это, используя только один запрос sql.
Тип last_activity
column DATETIME
.
чем проблема с использованием подзапросов? – abl
@ 0101. , , Я смущен. Ваш запрос * удаляет * одну строку ('limit 1'), но в тексте говорится, что вы« должны содержать одну строку ». Что он? Хранить один или удалить один? –
Извините, я подумал, что мне нужно удалить одну строку. Спасибо, что предупредили меня. – 0101