Ver Mensaje Individual
  #5 (permalink)  
Antiguo 30/05/2013, 11:48
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Como eliminar contenido que tenga una fila en una tabla mysql

Hola de nuevo juansiruiz:

Recuerda que una cadena vacía ('') no es lo mismo que un campo vacío (NULL) observa que en mi consulta asigno un NULL, esto quiere decir que el campo NO TIENEN NINGÚN VALOR ALMACENADO... este detalle, aunque simple, puede traerte problemas en algunos casos... Observa este script:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla1;
  2. +------+-------------+
  3. | id   | descripcion |
  4. +------+-------------+
  5. |    1 | algo        |
  6. |    2 |             |
  7. |    3 | NULL        |
  8. +------+-------------+
  9. 3 rows in set (0.00 sec)

El registro con el ID = 2 tiene asignada una cadena vacía ('') tal como lo tienes, pero observa qué pasa cuando haces algunas consultas filtrando por este campo:


Código MySQL:
Ver original
  1. mysql> #Preguntando por una cadena vacía
  2. mysql> SELECT * FROM tabla1 WHERE descripcion = '';
  3. +------+-------------+
  4. | id   | descripcion |
  5. +------+-------------+
  6. |    2 |             |
  7. +------+-------------+
  8. 1 row in set (0.00 sec)
  9.  
  10. mysql> #Preguntando por una cadena no vacía
  11. mysql> SELECT * FROM tabla1 WHERE descripcion != '';
  12. +------+-------------+
  13. | id   | descripcion |
  14. +------+-------------+
  15. |    1 | algo        |
  16. +------+-------------+
  17. 1 row in set (0.00 sec)
  18.  
  19. mysql> #Preguntando por un campo NO NULO
  20. mysql> SELECT * FROM tabla1 WHERE descripcion IS NOT NULL;
  21. +------+-------------+
  22. | id   | descripcion |
  23. +------+-------------+
  24. |    1 | algo        |
  25. |    2 |             |
  26. +------+-------------+
  27. 2 rows in set (0.00 sec)
  28.  
  29. mysql> #Preguntando por un campo NULO
  30. mysql> SELECT * FROM tabla1 WHERE descripcion IS NULL;
  31. +------+-------------+
  32. | id   | descripcion |
  33. +------+-------------+
  34. |    3 | NULL        |
  35. +------+-------------+
  36. 1 row in set (0.03 sec)


En lo particular no recomiendo asignar cadenas vacías a campos tipo texto, tal como lo haces... es parte de las buenas prácticas en SQL, pero también es cuestión de gustos

Saludos
Leo.