列の値を連結する必要があり、いずれかの列の値がNULLである場合、CONCAT()関数に対するCONCAT_WS()関数の利点は何ですか?
引数のいずれかがNULLの場合、CONCAT()関数は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)
-
MySQLでそのような列値の1つがnullの場合、2つの列を連結します
クエリの実行中に問題が発生しないようにするには、IFNULL()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1793 ( StudentFirstName varchar(20), StudentLastName varchar(20) ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコード
-
2つの列からすべての列値をカウントし、合計カウントからNULL値を除外するMySQLクエリ?
まずテーブルを作成しましょう- mysql> create table DemoTable1975 ( StudentName varchar(20), StudentMarks int ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1975 values('John',45); Query OK, 1 r