MySQL连接字段但忽略空字段
我有一个MySQL数据库,其中有一组人,包括他们的地址,我想在查询中作为一个字段返回。它被分为MySQL连接字段但忽略空字段,mysql,concatenation,Mysql,Concatenation,我有一个MySQL数据库,其中有一组人,包括他们的地址,我想在查询中作为一个字段返回。它被分为address1、address2、address3、address4、post\u code,我想做如下事情 SELECT CONCAT(`address1`, ' ', `address2`, ' ', `address3`, ' ', `address4`, ' ', `post_code`) AS `address` FROM `table` 因此,我将在address中以完整的地址字符串结
address1、address2、address3、address4、post\u code
,我想做如下事情
SELECT CONCAT(`address1`, ' ', `address2`, ' ', `address3`, ' ', `address4`, ' ', `post_code`) AS `address` FROM `table`
因此,我将在
address
中以完整的地址字符串结束,这很好,但是如果一些字段为空,那么我将以大量的双空格结束。如何消除多余的空间?有比在每个字段上执行IF()更简单的方法吗?使用CONCAT\u WS代替CONCAT
SELECT CONCAT_WS(' ',`address1`, `address2`, `address3`, `address4`, `post_code`) AS `address`
FROM `table`;
如果您的空字段实际上是NULL
,则可以省略NULL如果构造:
SELECT CONCAT_WS(' ', address1, address2, address3, address4, post_code)
FROM table
您也可以使用COALESCE,而不是IFNULL,它是为这个任务而设计的
SELECT CONCAT_WS(' ', address1, address2, address3, address4, post_code)
FROM table