Mysql
 sql >> Base de données >  >> RDS >> Mysql

Supprimer toutes les lignes sauf la première N d'un tableau à une seule colonne

Si vous pouvez commander vos disques par friends_name , et s'il n'y a pas de doublons, vous pouvez utiliser ceci :

DELETE FROM names
WHERE
  friends_name NOT IN (
    SELECT * FROM (
      SELECT friends_name
      FROM names
      ORDER BY friends_name
      LIMIT 10) s
  )

Veuillez consulter le violon ici .

Ou vous pouvez utiliser ceci :

DELETE FROM names ORDER BY friends_name DESC
LIMIT total_records-10

où total_records est (SELECT COUNT(*) FROM names) , mais vous devez le faire par code, vous ne pouvez pas mettre un décompte dans la clause LIMIT de votre requête.