プロジェクトのクエリは concat() スプライシング関数を使用しています。このクエリでは、スプライスされたフィールドは null です。スプライシング結果は null で、null ポインタ例外がアプリケーション層で報告されます。
SELECT CONCAT('1,',NULL,'2') result;
SELECT CONCAT('1,','','2') result;
CONCAT() 関数が接続された部分で NULL で接続されている場合、実践を通じて証明されています。パラメータを指定すると、結果は NULL になります。
方法 1: IFNULL 関数を使用して、NULL の場合は空の文字列に設定します。
SELECT CONCAT('1,',IFNULL(NULL,''),'2') result;
方法 2: CONCAT_WS 関数を使用します。文字列の連結を区切り文字で指定します
SELECT CONCAT_WS(',','1',NULL,'2') result;
カンマで区切って指定します
##CONCAT_WS(区切り文字, パラメータ 1, パラメータ 2, ... パラメータ n)および CONCAT (パラメータ 1、パラメータ 2、...パラメータ n)
2 つの関数の違い:
CONCAT_WS() : との連結を示します。区切り文字、つまり区切り文字と文字列の接続 CONCAT(): 文字列の連結を示します 最も重要な 2 つの違いは、CONCAT() 関数、スプライシングです パラメータに NULL がある場合、直接はNULLが返されますが、CONCAT_WS()関数を実行するとNULL値のためNULLは返されません。
以上がMySQL で CONCAT() 関数を連結する際の NULL 問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。