Jerry2
Jerry2

Reputation: 3085

Select column value if not null else use another column value

I have 2 columns in mysql table: a and b. a is allways string value and b is sometimes a string value and sometimes it is null.

How to construct a mysql SELECT so that the b would be taken if it is not null and a would be taken otherwise.

I tried to make some magic with concat and if...then with no success...

UPDATE - To extend my question, is there a function that would work like Ifnull but would work for null AND empty values?

Upvotes: 17

Views: 30429

Answers (3)

Eyal Ch
Eyal Ch

Reputation: 10056

IF(expr1,expr2,expr3)

If expr1 is TRUE (expr1 <> 0 and expr1 <> NULL) then IF() returns expr2; otherwise it returns expr3.

Upvotes: 3

Amber
Amber

Reputation: 526583

IFNULL(b, a) ?

Upvotes: 3

Mark Byers
Mark Byers

Reputation: 838146

Use IFNULL(b, a).

If expr1 is not NULL, IFNULL() returns expr1; otherwise it returns expr2.

This is a MySQL specific function. You can also use COALESCE in the same way. This will work in more databases but it has slightly worse performance in MySQL than IFNULL.

Upvotes: 24

Related Questions