sql >> Base de Datos >  >> RDS >> Mysql

Elimine todas las filas excepto la primera N de una tabla que tenga una sola columna

Si puedes ordenar tus registros por friends_name , y si no hay duplicados, puede usar esto:

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

Consulte fiddle aquí .

O puedes usar esto:

DELETE FROM names ORDER BY friends_name DESC
LIMIT total_records-10

donde total_records es (SELECT COUNT(*) FROM names) , pero tiene que hacer esto por código, no puede poner un conteo en la cláusula LIMIT de su consulta.