いずれかのパラメータが NULL の場合、CONCAT() 関数は NULL を返すことがわかっていますが、最初のパラメータ (つまり区切り文字) が NULL の場合に限り、CONCAT_WS( ) 関数は NULL を返し、その他の NULL は無視されます。列内の値を連結する必要があり、いずれかの列の値が NULL である場合、これが CONCAT() 関数に対する CONCAT_WS() 関数の利点であると言えます。それを理解するために、テーブル「Student_name;」の例を考えてみましょう。その中には次のデータがあります-
mysql> Select * from Student_Name; +---------+-------+---------+ | FName | Mname | Lname | +---------+-------+---------+ | Rahul | NULL | Singh | | Gaurav | Kumar | NULL | | Harshit | NULL | Khurana | | Yash | Pal | Sharma | +---------+-------+---------+ 4 rows in set (0.00 sec)
ここで、Fname、Mname、および Lname 列の値を連結したいとします。出力は次のようになります-
mysql> Select CONCAT(Fname,Mname,Lname)AS Name from Student_Name; +---------------+ | Name | +---------------+ | NULL | | NULL | | NULL | | YashPalSharma | +---------------+ 4 rows in set (0.00 sec)
しかし、 CONCAT_WS() 関数を使用すると、次のクエリに示すように NULL が無視されます -
mysql> Select CONCAT_WS(' ',Fname,Mname,Lname)AS Name from student_name; +-----------------+ | Name | +-----------------+ | Rahul Singh | | Gaurav Kumar | | Harshit Khurana | | Yash Pal Sharma | +-----------------+ 4 rows in set (0.00 sec)
以上が列内の値を連結する必要があり、いずれかの列の値が NULL である場合、CONCAT() 関数と比較した CONCAT_WS() 関数の利点は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。