Reputation: 3085
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
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
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