我正在编写一个PHP和MySQL应用程序,其中我必须将多个列值连接成一个单独的列.我将使用concat()函数,但它不处理空值,而concat_ws(),它不返回我想要的输出结果.我需要的东西可以在Oracle数据库中实现,如下所示:
Select 'The Surname Is'||last_name from employees;
Run Code Online (Sandbox Code Playgroud)
我的问题是如何使用MySQL实现相同的结果...而不使用上面提到的函数?
Fil*_*efp 27
SELECT
CONCAT('The Surname Is ', IFNULL(last_name, 'sadly not available'))
FROM `employees`
Run Code Online (Sandbox Code Playgroud)
Min*_*esh 10
您还可以使用CONCAT_WS函数来处理NULL值
SELECT
CONCAT_WS(' ','The Surname Is',lastname)
FROM `employees`
Run Code Online (Sandbox Code Playgroud)
@Minesh:CONCAT_WS不会"关注"NULL值.为了说明这一点......
CONCAT_WS("~",house.name,house.address,house.type)
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,如果house.address为NULL,则返回的结果将不包含预期的整齐双tilda(~~).它将是一个只有1个tilda的tilda分隔列表.例如"有趣的房子〜豪宅"