mysql IFNULL ELSE

不问归期 提交于 2019-12-03 18:38:08

问题


I have a select statement where I want to make select conditional like this

IFNULL(field_a,field_a,feild_b)

so that it checks field a if a is null then the select would be field b

is that possible ?


回答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+...




回答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...



回答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




回答4:


For more examples

MySQL IFNULL() With Syntax & Examples

Syntax

The syntax of the IFNULL function is:

IFNULL(expression_1,expression_2);

examples

   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 |
   +------------+-----------+----------+-----------


来源:https://stackoverflow.com/questions/3215454/mysql-ifnull-else

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!