如果 name
列为空而 name_en
列不为空,那么使用 CONCAT(u.name, ' / ', u.name_en)
表达式会得到一个空的结果。这是因为在连接过程中,如果任何一个操作数为 NULL
,CONCAT
函数的结果也会是 NULL
。
为了避免这种情况,你可以使用 COALESCE
函数或 IFNULL
函数来处理可能为空的列。这些函数可以在操作数为 NULL
时返回一个默认值。
以下是使用 COALESCE
函数的示例,它将 name
列为空时使用 name_en
列的值:
SELECT CONCAT(COALESCE(u.name, ''), ' / ', u.name_en) AS concatenated_name
FROM your_table u
上述查询中,COALESCE(u.name, '')
表达式将 name
列的值替换为一个空字符串,以确保 CONCAT
函数不会返回 NULL
。