在 IFNULL 中连接
Concat inside IFNULL
我有一个声明
SELECT CONCAT(lastName, ' ', firstName, '', IFNULL(middleName, ''))
效果很好,无论是否有中间名,它都会给我所有的名字。我的问题是,如果可能的话,我不想在没有中间名的记录的名字后包含空的 space。如何在有中间名的情况下只在名字后面加space?
SELECT CONCAT(lastName, ' ', firstName, if(middleName IS NULL,'',' '), IFNULL(middleName, ''))
或
SELECT CONCAT(lastName, ' ', firstName, IFNULL(concat(' ', middleName), ''))
您需要的是:
SELECT CONCAT(lastName, ' ', firstName,
IF(middleName is null, '', concat(' ', middleName)))
更简单的方法是:
SELECT TRIM(CONCAT(lastName, ' ', firstName, ' ', IFNULL(middleName, ' ')))
使用IF
:
SELECT CONCAT(lastName, ' ', firstName,
IF(middleName IS NOT NULL, CONCAT(' ',middleName), ''))
我有一个声明
SELECT CONCAT(lastName, ' ', firstName, '', IFNULL(middleName, ''))
效果很好,无论是否有中间名,它都会给我所有的名字。我的问题是,如果可能的话,我不想在没有中间名的记录的名字后包含空的 space。如何在有中间名的情况下只在名字后面加space?
SELECT CONCAT(lastName, ' ', firstName, if(middleName IS NULL,'',' '), IFNULL(middleName, ''))
或
SELECT CONCAT(lastName, ' ', firstName, IFNULL(concat(' ', middleName), ''))
您需要的是:
SELECT CONCAT(lastName, ' ', firstName,
IF(middleName is null, '', concat(' ', middleName)))
更简单的方法是:
SELECT TRIM(CONCAT(lastName, ' ', firstName, ' ', IFNULL(middleName, ' ')))
使用IF
:
SELECT CONCAT(lastName, ' ', firstName,
IF(middleName IS NOT NULL, CONCAT(' ',middleName), ''))