У меня есть таблица со столбцами, как это:MySQL - Удаление всех, но новые строки с композитным ключом
id timestamp content
где ID это строка, и временные метки DEFAULT CURRENT_TIMESTAMP
.
id
и timestamp
вместе образуют составной ключ, так что вы можете выбрать самую новую Колум что-то вроде:
select * from table where id = 'text-here' order by timestamp desc limit 1
Теперь у меня есть проблема, когда я хочу, чтобы удалить все, кроме последней записи для каждого id
, но я понятия не имею, как это сделать. Если у него был автоматически увеличивающий первичный ключ, я мог бы использовать подзапрос, чтобы выбрать те, которые нужно сохранить и использовать NOT IN
, как это показано на многочисленных вопросах здесь, но я не знаю, как это сделать с помощью сложного ключа.
'WHERE метка <> MAX (метка времени)' – hjpotter92
@ hjpotter92 - Я не понимаю, как это будет учет для меняющихся 'id' - не будет ли удалять все, кроме одной строки, независимо от' id'? –
Вышеуказанное условие должно быть 'AND'ed w/your' id'. – hjpotter92