1

我有一个声明

SELECT CONCAT(lastName, ' ', firstName, '', IFNULL(middleName, ''))

效果很好,它给了我所有的名字,不管有没有中间名。我的问题是,如果可能的话,我不想在没有中间名的记录的名字之后包含空格。当有中间名时,如何只在名字后添加空格?

4

3 回答 3

1
SELECT CONCAT(lastName, ' ', firstName, if(middleName IS NULL,'',' '), IFNULL(middleName, ''))

或者

SELECT CONCAT(lastName, ' ', firstName, IFNULL(concat(' ', middleName), ''))
于 2015-11-09T15:43:53.723 回答
1

你需要的只是:

SELECT CONCAT(lastName, ' ', firstName, 
               IF(middleName is null, '', concat(' ', middleName)))

一个更简单的方法是:

SELECT TRIM(CONCAT(lastName, ' ', firstName, ' ', IFNULL(middleName, ' ')))
于 2015-11-09T15:45:42.053 回答
-1

使用IF

SELECT CONCAT(lastName, ' ', firstName, 
    IF(middleName IS NOT NULL, CONCAT(' ',middleName), ''))
于 2015-11-09T15:47:17.593 回答