Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Excluir todas as linhas, exceto o primeiro N de uma tabela com uma única coluna


Se você pode encomendar seus registros por friends_name , e se não houver duplicatas, você pode usar isto:
DELETE FROM names
WHERE
  friends_name NOT IN (
    SELECT * FROM (
      SELECT friends_name
      FROM names
      ORDER BY friends_name
      LIMIT 10) s
  )

Por favor, veja violino aqui .

Ou você pode usar isso:
DELETE FROM names ORDER BY friends_name DESC
LIMIT total_records-10

onde total_records é (SELECT COUNT(*) FROM names) , mas você tem que fazer isso por código, você não pode colocar uma contagem na cláusula LIMIT da sua consulta.