MySQL: SELECT 0 en lugar de NULL
Pregunta de Invitado | 04/05/2021 a las 23:41
En una de mis consultas de MySQL, puede suceder de vez en cuando que en los resultados haya uno u otro valor NULL, porque la celda correspondiente aún no se ha agregado a la base de datos.
Para sin embargo ser capaz de procesar los valores en mi script PHP, me gustaría hacer que MySQL devuelva el número "0" en lugar de "NULL".
¿Existe alguna posibilidad en MySQL de determinar directamente en la consulta que se debe devolver "0" siempre que el resultado sea "NULL"?
Temas Relacionados
HTML: Preasignar un Formulario HTML con Datos
Tutorial | 0 Comentarios
MySQL: Comprobar si un Valor es NULL
Pregunta | 1 Respuesta
MySQL: Cómo usar IFNULL- Error: Número Incorrecto de Parámetros
Pregunta | 1 Respuesta
PHP: Guardar Resultado de MySQL en Array
Información | 0 Comentarios
MySQL/PHP: Cómo recuperar el último INSERT ID
Información | 0 Comentarios
MySQL: Cómo verificar si un campo es NULL o vacío
Pregunta | 3 Respuestas
Firebird: SELECT con LIMIT
Pregunta | 1 Respuesta
Aviso Importante
Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.
Participar
Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.
Puede usar la función COALESCE().
Aquí hay un pequeño ejemplo:
En esta consulta, nos gustaría leer las columnas "id" y "col" de la tabla "tab". En el caso de que el valor proveniente de "col" sea "NULL", nos gustaría tener "0" en lugar de "NULL".
COALESCE() devuelve el primer valor que no es NULL de la fila de parámetros pasados. Por lo tanto, usar COALESCE(col, 1) devolvería "1" siempre que "col" sea NULL.
También puede utilizar esta función con varios parámetros. Por ejemplo, COALESCE(col1, col2, 0). Aquí, el resultado sería "col1" siempre que el valor de "col1" no sea NULL. Si "col1" es NULL, MySQL prueba el valor de "col2" y lo devuelve si no es NULL. Si ambos, "col1" y "col2" son NULL, MySQL recurre a 0.
05/05/2021 a las 23:59
En lugar de COALESCE(), también puede usar la función IFNULL().
La construcción se puede utilizar de forma similar a COALESCE():
Esto es: si el primer valor pasado a IFNULL es NULL (aquí el valor de "col"), tome el segundo valor (aquí 0).
Sin embargo, solo puede usar IFNULL() con 2 parámetros. Por lo tanto, su uso no es tan flexible como COALESCE().
07/05/2021 a las 08:45
Otro pequeño consejo: en MySQL, se puede definir un valor DEFAULT para cada columna.
Quizás esto pueda ayudarte. Porque, si establece el valor DEFAULT de su columna en "0", este valor se escribe automáticamente en cada nueva celda cuando se agrega una nueva línea a la base de datos.
Por supuesto, esta sugerencia no se puede utilizar cuando se prueban valores de filas que no existen.
07/05/2021 a las 14:31
Otra posibilidad es usar la condición IF de MySQL:
En esta condición IF, verificamos si "col" es NULL mediante "col IS NULL". Si es así, devolvemos la alternativa (aquí es 0); si no, devolvemos el contenido de "col".
07/05/2021 a las 18:35