Página 1 de 1
Consulta en MySQL
Publicado: Vie, 28 Mar 2014, 14:59
por addul
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
Re: Consulta en MySQL
Publicado: Sab, 29 Mar 2014, 11:22
por hugo
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.
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;
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.
Re: Consulta en MySQL
Publicado: Dom, 30 Mar 2014, 07:34
por addul
gracias Don Hugo.....pruebo y luego te comento cómo me fue
Re: Consulta en MySQL
Publicado: Lun, 14 Jul 2014, 10:53
por frizquierdo
Tambien podrías hacer algo como esto:
Código: Seleccionar todo
SELECT nombre, ifnull(horas, 0), ifnull(ganancia, 0) from mitabla
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.