1

声明があります

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

これは正常に動作し、ミドル ネームがあるかどうかに関係なく、すべての名前が表示されます。私の問題は、可能であれば、ミドルネームのないレコードの名前の後に空白を入れたくないということです。ミドルネームがある場合、名前の後にのみスペースを追加するにはどうすればよいですか?

4

3 に答える 3

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
SELECT CONCAT(lastName, ' ', firstName, if(middleName IS NULL,'',' '), IFNULL(middleName, ''))

また

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

使用IF:

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