上記のプロパティは、特に列内の値を連結する必要があり、いずれかの列の値が NULL である場合には、ほとんど役に立ちません。この問題を解決するには、IFNULL() 関数と CONCAT() 関数を使用します。それを理解するために、テーブル「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() 関数の特性として、いずれかのパラメーターが NULL の場合は NULL を返すため、これが有用な出力ではないことはわかっています。次のクエリ -
mysql> Select CONCAT(IFNULL(Fname,''),IFNULL(Mname,''),IFNULL(Lname,''))AS Name from Student_Name; +----------------+ | Name | +----------------+ | RahulSingh | | GauravKumar | | HarshitKhurana | | YashPalSharma | +----------------+ 4 rows in set (0.06 sec)に示すように、IFNULL() 関数を使用してこの特性を克服できます。
以上が特に列の値を連結する必要があり、いずれかの列の値が NULL である場合、引数のいずれかが NULL の場合に NULL を返すという CONCAT() 関数の特性をどのように克服すればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。