MySQL の CONCAT 関数を歪める NULL 値
NULL 値を含むテーブルで CONCAT クエリを実行すると、予期しない結果が生じる可能性があります。この例では、特定のフィールドの NULL 値により、CONCAT 結果全体が NULL になります。
これに対処するには、COALESCE 関数を使用して NULL 値を適切に処理できます。 COALESCE は、評価されるフィールドと、フィールドが NULL の場合に置換される値の 2 つの引数を受け入れます。 COALESCE で NULL の可能性がある各フィールドをラップすることで、NULL 値を空の文字列 ('') に置き換えることができます。
COALESCE が適用された変更されたクエリ:
SELECT CONCAT(COALESCE(`affiliate_name`,''),'-',COALESCE(`model`,''),'-',COALESCE(`ip`,''),'-',COALESCE(`os_type`,''),'-',COALESCE(`os_version`,'')) AS device_name FROM devices
このクエリは次の値を返します。 NULL 値を無視し、非 NULL 値を 1 つの文字列に連結した望ましい結果:
cs1-Dell-10.125.103.25-Linux-Fedora cs2-Dell-10.125.103.26-Linux-Fedora cs3-Dell-10.125.103.27- cs4-Dell-10.125.103.28-
以上がNULL 値によって MySQL CONCAT 結果が損なわれないようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。