这里有点帮助.我真的不明白如何在MySQL中使用这个coalesce
我已阅读第1页how to use coalsece
中谷歌搜索结果中的所有页面.
我知道它的含义是它返回它遇到的第一个非null值,否则返回null.
但它对我来说仍然含糊不清.
coalesce(column1,column2)
?如果第一列为空而其他列不为空怎么办?egg*_*yal 36
为什么我看到返回多个值的查询?是不是只返回了第一个not null值?
是的,它只是返回的第一个非NULL值.你必须误解你所看到的那些你认为不是这样的问题:如果你能告诉我们一个例子,我们或许可以帮助澄清误解.
它如何决定基于哪一列?合并(列1,列2)?如果第一列为空而其他列不为空怎么办?
按其参数顺序:在此示例中,column1
之前column2
.
或者如果我错了或我的语法错了,我该怎么写呢?
你没错.
有人可以提供一个如何使用它的非常好的简单示例吗?
取自文档:
Run Code Online (Sandbox Code Playgroud)mysql> SELECT COALESCE(NULL,1); -> 1 mysql> SELECT COALESCE(NULL,NULL,NULL); -> NULL
并且当需要使用时.
每当希望从列表中选择第一个非NULL值时,都希望使用.
小智 27
当我想从优先级列表中找到第一列不是空行时,我个人使用coalesce.
比方说,我想从客户表中获取一个电话号码,他们有3列电话号码,名为mobile,home和work,但我只想检索第一个非空白的号码.
在这种情况下,我有移动优先权,然后回家然后工作.
TABLE STRUCTURE
--------------------------------------------
| id | customername | mobile | home | work |
--------------------------------------------
| 1 | Joe | 123 | 456 | 789 |
--------------------------------------------
| 2 | Jane | | 654 | 987 |
--------------------------------------------
| 3 | John | | | 321 |
--------------------------------------------
SELECT id, customername, COALESCE(mobile, home, work) AS phone FROM customers
RESULT
------------------------------
| id | customername | phone |
------------------------------
| 1 | Joe | 123 |
------------------------------
| 2 | Jane | 654 |
------------------------------
| 3 | John | 321 |
------------------------------
Run Code Online (Sandbox Code Playgroud)