Tengo una tabla con más de 100000 elementos de datos, pero hay casi 350 filas en blanco dentro. ¿Cómo elimino estas filas en blanco usando phpmyadmin? La eliminación manual es una tarea tediosa.¿Cómo elimino las filas en blanco en Mysql?
Respuesta
La respuesta general es:
DELETE FROM table_name WHERE some_column = '';
o
DELETE FROM table_name WHERE some_column IS NULL;
Ver: http://dev.mysql.com/doc/refman/5.0/en/delete.html
Más información al publicar sus tablas ~
Además, asegúrese de que hacer! :
SELECT * FROM table_name WHERE some_column = '';
antes de eliminar, para que pueda ver qué filas está eliminando. Creo que en phpMyAdmin puedes simplemente hacer la selección y luego "seleccionar todo" y eliminar, pero no estoy seguro. Esto sería bastante rápido y muy seguro.
Tengo un script PHP que elimina automáticamente las filas vacías en función de los tipos de datos de columna.
Eso me permite definir "vacío" de manera diferente para diferentes tipos de columnas.
p. Ej.
table
first_name (varchar) | last_name (varchar) | some_qty (int) | other_qty (decimal)
DELETE FROM `table` WHERE
(`first_name` IS NULL OR `first_name` = '')
AND
(`last_name` IS NULL OR `last_name` = '')
AND
(`some_qty` IS NULL OR `some_qty` = 0)
AND
(`other_qty` IS NULL OR `other_qty` = 0)
Dado que los valores "0" no tienen sentido en mi sistema, los cuento como vacíos. Pero descubrí que si lo haces (first_name
= 0), siempre serás cierto, porque las cadenas siempre == 0 en MySQL. Así que adapto la definición de "vacío" al tipo de datos.
Estoy haciendo la operación mysql
en el símbolo del sistema en Windows. Y las consultas básicas:
delete * from table_name where column=''
y
delete * from table_name where column='NULL'
no funciona. No sé si funciona en phpmyadmin
sqlcommand builder. De todos modos:
delete * from table_name where column is NULL
funciona bien.
Este procedimiento eliminará cualquier fila para todas las columnas que son nulas, ignorando la columna principal que se puede establecer como una ID. Espero que te ayude.
DELIMITER //
CREATE PROCEDURE DeleteRowsAllColNull(IN tbl VARCHAR(64))
BEGIN
SET @tbl = tbl;
SET SESSION group_concat_max_len = 1000000;
SELECT CONCAT('DELETE FROM `',@tbl,'` WHERE ',(REPLACE(group_concat(concat('`',COLUMN_NAME, '` is NULL')),',',' AND ')),';') FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = @tbl AND COLUMN_KEY NOT LIKE 'PRI' into @delete_all;
PREPARE delete_all FROM @delete_all;
EXECUTE delete_all;
DEALLOCATE PREPARE delete_all;
END //
DELIMITER ;
ejecutar el procedimiento como este.
CALL DeleteRowsAllColNull('your table');
sé que esto ya ha sido contestada y tiene una garrapata, pero me escribió una pequeña función para hacer esto, y pensé que podría ser útil para otras personas.
Llamo a mi función con una matriz para que pueda usar la misma función para diferentes tablas.
$tableArray=array("Address", "Email", "Phone"); //This is the column names
$this->deleteBlankLines("tableName",$tableArray);
y aquí es la función que toma la matriz y construye la cadena de eliminación
private function deleteBlankLines($tablename,$columnArray){
$Where="";
foreach($columnArray as $line):
$Where.="(`".$line."`=''||`".$line."` IS NULL) && ";
endforeach;
$Where = rtrim($Where, '&& ');
$query="DELETE FROM `{$tablename}` WHERE ".$Where;
$stmt = $this->db->prepare($query);
$stmt->execute();
}
Puede utilizar esta función para varias tablas. Solo necesita enviar un nombre de tabla y una matriz diferentes y funcionará.
Mi función verificará toda una fila de columnas vacías o columnas NULL al mismo tiempo. Si no lo necesita para verificar NULL, puede eliminar esa parte.
- 1. ¿cómo elimino las filas en Yii?
- 2. ¿Cómo elimino paneles en blanco del eclipse?
- 3. MySQL Query para devolver filas que contengan espacios en blanco
- 4. ¿Cómo elimino hasta espacios no en blanco en vim?
- 5. ¿Cómo elimino el espacio en blanco inicial en Python?
- 6. MySQL InnoDB bloquea en las filas unidas
- 7. ¿Cómo elimino los espacios en blanco finales de un QString?
- 8. MySQL REGEXP: entradas coincidentes en blanco
- 9. Copiando filas en MySQL
- 10. ¿Cómo puedo seleccionar las filas en orden inverso (mysql)
- 11. ¿Cómo elimino varias filas con diferentes ID?
- 12. Cómo elimino varias filas en Entity Framework (sin foreach)
- 13. ¿Cómo elimino la separación entre filas en una tabla HTML?
- 14. ¿Cómo elimino las revisiones antiguas en Subversion?
- 15. En redis, ¿cómo elimino las claves?
- 16. Concatenar varias filas en filas individuales en MySQL
- 17. Cuando elimino filas en Cassandra, elimino solo columnas, no claves de fila
- 18. interbloqueos en MySQL filas eliminación
- 19. ¿Cómo elimino una base de datos MySQL?
- 20. MySql: ¿Cuenta las filas en el rango de precio?
- 21. Cómo vaciar todas las filas de todas las tablas en mysql (en sql)
- 22. MySQL distintos y espacios en blanco
- 23. MySQL: Eliminar todas las filas anteriores a 10 minutos
- 24. suma MYSQL() para las filas distintas
- 25. ¿Cómo elimino 'NOT NULL' de una columna en MySQL?
- 26. Insertar varias filas en MySQL
- 27. Obtener todas las filas seleccionadas de mysql en una matriz
- 28. Seleccione las primeras 10 filas distintas en mysql
- 29. Transponer filas en columnas en MySQL
- 30. ¿Cómo elimino o elimino las variables de sesión?
¿Podría publicar la estructura de la tabla, y también qué campo (s) debe estar en blanco para que el registro completo se considere en blanco? –