私はこれを持っています:
SELECT CONCAT(forename,' ',IFNULL(initials, ''),' ',surname) AS name FROM users
イニシャル フィールドが null の場合、その後にスペースが含まれないように変更するにはどうすればよいですか?
SELECT CONCAT(forename,' ',IFNULL(CONCAT(initials,' '), ''),surname) AS name FROM users
CONCAT_WS を使用します。例えば:
SELECT CONCAT_WS(' ', NULL, 'First', NULL, 'Last', NULL);
これは、1 つの CONCAT_WS が NULL ではない 2 つの文字列の間に配置した以外の場所にスペースを含まない文字列 "First Last" を返します。
CONCAT_WS の最初の引数は、NULL 以外の値の間に現れる接着剤です。
あなたの場合、これは次のようになります。
SELECT CONCAT_WS(' ', forename, initials, surname) AS name FROM users;
ここから:
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat-ws
編集: これは MySQL でのみ機能します。
Use SELECT CONCAT(forename, ' ', CASE WHEN initials IS NULL THEN '' ELSE initials || ' ' END, surname) ...