Saludos a la comunidad:
Resulta que tengo un proyecto de PHP con MySQL y tengo una consulta que devuelve una serie de números en una tabla, algunos de dichos números son 0(cero, null, por si no se entiende), estos valores null no se muestran en la tabla y lo que necesito es que muestre todos los valores aunque sean cero.
ej.
nombre horas ganancia
pepe 20 10
manolo 10
como ven la ganancia de manolo no se muestra, y eso lo necesito
Espero por ayuda
Consulta en MySQL
Re: Consulta en MySQL
Aquí hay un error de concepto. NULL quiere decir que NO existe un valor en esa columna (y cero es un valor), por eso no sale nada.
Si no quieres que eso suceda, simplemente establece valores a las celdas con valores nulos y modifica la columna para que valide correctamente y ofrezca como valor predeterminado el cero.
Otra cosa, recomiendo que uses decimales para las columnas horas y ganancia, porque alguien puede acumular digamos una hora y media o la ganancia puede contener fracciones, de lo contrario tendrás que redondear al entero más próximo y estarás o bien quitándole o dándole inmerecidamente horas o ganancia a alguien.
Si no quieres que eso suceda, simplemente establece valores a las celdas con valores nulos y modifica la columna para que valide correctamente y ofrezca como valor predeterminado el cero.
Código: Seleccionar todo
UPDATE mitabla SET horas=0 WHERE horas IS NULL;
ALTER TABLE mitabla MODIFY horas DECIMAL(5,2) NOT NULL DEFAULT 0.0;
Lo único que necesita el mal para triunfar es que los hombres buenos no hagan nada.
- Edmund Burke
- Edmund Burke
Re: Consulta en MySQL
gracias Don Hugo.....pruebo y luego te comento cómo me fue
-
- Mensajes: 36
- Registrado: Sab, 05 Feb 2011, 11:26
Re: Consulta en MySQL
Tambien podrías hacer algo como esto:
y weno, si tus columnas de horas y ganancia admiten valores decimales puedes emplear además los operadores de conversión CAST o CONVERT por si las moscas, pero no creo te hagan falta a no ser que desees realizar algún calculo matemático en la misma consulta de selección.
De todos modos es muy convenientes que hagas lo que expone Hugo, por lógica es mejor almacenar un cero y no dejar a null las columnas esas.
Código: Seleccionar todo
SELECT nombre, ifnull(horas, 0), ifnull(ganancia, 0) from mitabla
De todos modos es muy convenientes que hagas lo que expone Hugo, por lógica es mejor almacenar un cero y no dejar a null las columnas esas.