valor una ultimo traer tabla seleccionar registro por optimizar obtener mostrar mayor lentas grupo fecha consultas con campo cada mysql sql sql-delete

mysql - una - seleccionar el registro con el mayor valor en un campo sql



Eliminar muchas filas de una tabla usando id en Mysql (8)

¿qué hay de usar IN

DELETE FROM tableName WHERE ID IN (1,2) -- add as many ID as you want.

Soy un administrador de Linux con solo conocimientos básicos en Consultas Mysql

Quiero eliminar muchas entradas de tabla que son direcciones IP de mi tabla usando id ,

Actualmente estoy usando

DELETE from tablename where id=1; DELETE from tablename where id=2;

pero tengo que eliminar 254 entradas, por lo que este método tomará horas, ¿cómo puedo decirle a mysql que elimine las filas que especifico, porque quiero omitir la eliminación de algunas entradas de este 254.

Eliminar toda la tabla e importar las entradas necesarias no es una opción.


Algo como esto podría hacer que sea un poco más fácil, obviamente podrías usar un script para generar esto, o incluso sobresalir

DELETE FROM tablename WHERE id IN ( 1, 2, 3, 4, 5, 6 );


La mejor forma es usar la declaración IN :

DELETE from tablename WHERE id IN (1,2,3,...,254);

También puede usar BETWEEN si tiene ID consecutivos:

DELETE from tablename WHERE id BETWEEN 1 AND 254;

Por supuesto, puede limitar algunas ID usando otra cláusula WHERE:

DELETE from tablename WHERE id BETWEEN 1 AND 254 AND id<>10;


Otros han sugerido IN , esto está bien. También puedes usar un rango:

DELETE from tablename where id<254 and id>3;

Si los ids a eliminar son contiguos.


Si tiene alguna ''condición'' en sus datos para descubrir los 254 ID, puede usar:

delete from tablename where id in (select id from tablename where <your-condition>)

o simplemente:

delete from tablename where <your-condition>

Simplemente codificando los 254 valores de la columna de id sería muy difícil en cualquier caso.


Usar cláusula IN

DELETE from tablename where id IN (1,2);

O puede combinar el uso de BETWEEN y NOT IN para disminuir los números que debe mencionar.

DELETE from tablename where (id BETWEEN 1 AND 255) AND (id NOT IN (254));


si necesita mantener solo unas pocas filas, considere

DELETE FROM tablename WHERE id NOT IN (5,124,221);

Esto mantendrá solo algunos registros y descartará otros.


DELETE FROM table_name WHERE id BETWEEN 1 AND 256;

Prueba esto.