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.