我有一个声明
SELECT CONCAT(lastName, ' ', firstName, '', IFNULL(middleName, ''))
效果很好,它给了我所有的名字,不管有没有中间名。我的问题是,如果可能的话,我不想在没有中间名的记录的名字之后包含空格。当有中间名时,如何只在名字后添加空格?
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), ''))