I have a select statement where I want to make the select conditional like this:
IFNULL(field_a, field_a, field_b)
so that it checks field a. If a is null then the select would be field b.
Is that possible ?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
Use COALESCE:
SELECT COALESCE(field_a, field_b)
COALESCE is an ANSI standard function that returns the first non-null value from the list of columns specified, processing the columns from left to right. So in the example, if field_a
is null, field_b
value will be displayed. However, this function will return NULL if there is no non-null value from the columns specified.
It’s supported on MySQL (I’ve used it on 4.1), SQL Server (since v2000), Oracle 9i+…
Method 2
and another way to skin that cat (flexible for not just null comparisons)…
select if(field_a is not null, field_a, field_b) from...
Method 3
Yes, but it’s just two parameters:
IFNULL(field_a,field_b)
If field_a
is not null, it will be returned. Otherwise field_b
will be returned.
Reference: IFNULL
Method 4
MySQL IFNULL() With Syntax & Examples
Syntax
The syntax of the IFNULL function is:
IFNULL(expression_1,expression_2);
SELECT name, IFNULL(businessphone, homephone) phone FROM users; #The above query return this result from users table +------------+-----------+----------+----------- | id | name | phone | +------------+-----------+----------+----------- | 5 | Tommy Hill | (541) 754-3009 | | 6 | John Smith | (541) 754-3110 | | 10 | Mark Greenspan | (541) 754-3111 | | 11 | Kelvin Row | (541) 754-3111 | +------------+-----------+----------+-----------
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0