我有两个表,并为它们创建了左联接查询。假设它们是表A和表B。
当我启动查询时,如果表B包含表A中的键,则根据表A显示记录。如果键不匹配,则在所有列上显示null。
如果我必须替换null,我使用mysql的ifnull函数,但是有更多的列要应用ifnull,有什么方法可以同时将这个函数应用于所有列吗?意味着不需要在每个单独的列上应用
发布于 2014-06-16 07:41:31
不,您需要对每个列分别应用IFNULL。
但是,如果您有一个稍微不同的要求,即从多个列显示第一个非空列,如果它们都为空,则显示默认值,您可以这样使用COALESCE函数:
select coalesce(col1,col2,col3,0)
from tbl这方面的问题是,它将返回结果中的单个列,而不是与col1、col2和col3对应的多列。因此,只要您希望在结果集中有多个列,就需要在每列的基础上执行空处理。
发布于 2014-06-16 07:36:36
不,不可能一次对多个列使用IFNULL,您必须在每一列上分别使用:
SELECT a.id, a.somecol, IFNULL(b.col1, 0) col1, IFNULL(b.col2, "") col2, ...
FROM Table1 AS a
LEFT JOIN Table2 AS b ON <some condition>发布于 2018-06-12 17:49:52
您可以连接您的列,例如:
SELECT CONCAT(col1, "|", col2, "|", col3, "|", col4) AS ConcatenatedString;然后用您决定使用的任何拆分字符拆分字符串。在这种情况下,一个管道“\”
https://stackoverflow.com/questions/24238604
复制相似问题