2010-10-17 10 views
11

J'ai 2 colonnes dans la table mysql: a et b. a est toujours une valeur de chaîne et b est parfois une valeur de chaîne et parfois elle est nulle.Sélection de la valeur de la colonne sinon null sinon utilisation d'une autre valeur de la colonne

Comment construire un mysql SELECT de sorte que le b serait pris s'il n'est pas nul et qu'un serait pris autrement.

J'ai essayé de faire un peu de magie avec concat et si ... alors sans succès ...

MISE À JOUR - Pour prolonger ma question, est-il une fonction qui fonctionnerait comme IFNULL mais travaillerait pour NULLE ET valeurs vides?

Répondre

15

Utilisez IFNULL(b, a).

Si expr1 n'est pas NULL, IFNULL() renvoie expr1; sinon, il renvoie expr2.

Ceci est une fonction spécifique à MySQL. Vous pouvez également utiliser COALESCE de la même manière. Cela fonctionnera dans plus de bases de données mais il a des performances légèrement moins bonnes dans MySQL qu'IFNULL.

+0

Merci. Si simple :-( – Jerry2

+0

Désolé, je n'ai pas trouvé cette fonction mysqlf. – Jerry2

2
IF(expr1,expr2,expr3) 

Si expr1 est TRUE (expr1 <> 0 et expr1 <> NULL) puis IF() retourne expr2; sinon, il renvoie expr3.

Questions connexes