Alguém pode me ajudar com uma consulta MySql para excluir todas as linhas maiores que n entradas ordenadas por data?
Ou seja, digamos que eu tenha 1200 linhas de dados com uma coluna de carimbo de data/hora. Preciso ordená-lo por data e preservar as linhas apenas até as primeiras 200.
Se eu tiver apenas 199 linhas de dados, preciso preservá-las todas.
Isso manterá as primeiras 200 linhas (e possivelmente mais algumas, com timestamps idênticos):
Pergunta adicional: Mantenha as primeiras 200 linhas para cada usuário (pela
uid
coluna):A
(uid, timestampColumn)
será útil com uma mesa grande.Se você tiver uma chave primária AUTOINCREMENT e pudermos assumir que você não atualiza o carimbo de data/hora, isso deve funcionar e ser razoavelmente rápido:
Dadas as suposições acima, ordenar por
id
em vez dedate
daria exatamente os mesmos resultados. Também presumi que você deseja excluir qualquer coisa mais antiga que os 200 mais recentes, portanto, oORDER BY
arquivoDESC
.