声明があります
SELECT CONCAT(lastName, ' ', firstName, '', IFNULL(middleName, ''))
これは正常に動作し、ミドル ネームがあるかどうかに関係なく、すべての名前が表示されます。私の問題は、可能であれば、ミドルネームのないレコードの名前の後に空白を入れたくないということです。ミドルネームがある場合、名前の後にのみスペースを追加するにはどうすればよいですか?
必要なのは次のとおりです。
SELECT CONCAT(lastName, ' ', firstName,
IF(middleName is null, '', concat(' ', middleName)))
より簡単な方法は次のとおりです。
SELECT TRIM(CONCAT(lastName, ' ', firstName, ' ', IFNULL(middleName, ' ')))
SELECT CONCAT(lastName, ' ', firstName, if(middleName IS NULL,'',' '), IFNULL(middleName, ''))
また
SELECT CONCAT(lastName, ' ', firstName, IFNULL(concat(' ', middleName), ''))
使用IF
:
SELECT CONCAT(lastName, ' ', firstName,
IF(middleName IS NOT NULL, CONCAT(' ',middleName), ''))