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.