2010-10-17 24 views
11

Tengo 2 columnas en la tabla mysql: ay b. a es siempre valor de cadena yb es a veces un valor de cadena y, a veces, es nulo.Seleccione el valor de la columna si no es nulo else use otro valor de columna

Cómo construir un mysql SELECT para que se tome la b si no es nulo y se tomaría de otra manera.

Traté de hacer un poco de magia con concat y si ... entonces ... sin éxito

ACTUALIZACIÓN - Para extender mi pregunta, ¿existe una función que funcionaría como IFNULL pero trabajaría para nula y valores vacíos?

Respuesta

15

Utilice IFNULL(b, a).

Si expr1 no es NULL, IFNULL() devuelve expr1; de lo contrario, devuelve expr2.

Esta es una función específica de MySQL. También puede usar COALESCE de la misma manera. Esto funcionará en más bases de datos pero tiene un rendimiento ligeramente peor en MySQL que IFNULL.

+0

Gracias. Tan simple :-( – Jerry2

+0

Lo siento, no he encontrado esta función mysqlf. – Jerry2

2
IF(expr1,expr2,expr3) 

Si expr1 es TRUE (expr1 <> 0 y expr1 <> NULL), entonces SI() devuelve expr2; de lo contrario, devuelve expr3.

Cuestiones relacionadas