我有两个表,并且为它们创建了左联接查询。
假设它们是表A和表B。
当我查询表B是否包含表A中存在的键时,将根据它显示记录。如果键不匹配,则在所有列上显示null
如果我必须替换null,我使用mysql的ifnull
函数,但是要应用ifnull
的列更多,有什么办法可以一次在所有列上应用此函数?意味着无需在每个单独的列上应用
最佳答案
不,您需要将IFNULL
分别应用于每个列。
但是,如果您有稍微不同的要求,即要显示多个列中的第一个非空列,并显示默认列(如果它们全为空),则可以使用COALESCE
函数,如下所示:
select coalesce(col1,col2,col3,0)
from tbl
问题在于它将返回结果中的单个列,而不是对应于
col1
,col2
和col3
的多个列。因此,只要您要在结果集中包含多个列,就需要对每个列进行空值处理。关于mysql - ifnull()在多列上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24238604/