MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQL SUBSTRING_INDEX()関数を使用して、名前文字列を3つの部分に分割するにはどうすればよいですか?


わかりやすくするために、「customerdetail」という名前のテーブルから次のデータを使用しています。

mysql> Select * from Customerdetail;
+----------------------+----------------------+----------+---------------------+
| Name                 | FName                | Address  | Emailid             |
+----------------------+----------------------+----------+---------------------+
| Advik Jhamb          | Lovkesh Jhamb        | Mumbai   | Advik@gmail.com     |
| Chirag Jai Patil     | Raman Jai Patil      | Gujrat   | chirahp@yahoo.com   |
| Devansh Singh Rajput | Kishore Singh Rajput | Rajastan | Devansh@Hotmail.com |
| Mitul Kumar Sharma   | Om Veer Sharma       | Patiala  | Mitul@gmail.com     |
+----------------------+----------------------+----------+---------------------+
4 rows in set (0.00 sec)

ここで、名前を「First_name」、Middle_Name、「Last_name」の3つの部分に分割する場合は、次のクエリを使用して実行できます-

mysql> SELECT Name, SUBSTRING_INDEX(SUBSTRING_INDEX(Name, ' ', 1), ' ', -1) AS First_Name, If( length(Name) - length(replace(Name, ' ', ''))>1, SUBSTRING_INDEX(SUBSTRING_INDEX(Name, ' ', 2), ' ', -1) ,NULL)AS Middle_Name, SUBSTRING_INDEX(SUBSTRING_INDEX(Name, ' ', 3), ' ', -1) AS Last_Name, Address FROM customerdetail;
+----------------------+------------+-------------+-----------+----------+
| Name                 | First_Name | Middle_Name | Last_Name | Address  |
+----------------------+------------+-------------+-----------+----------+
| Advik Jhamb          | Advik      | NULL        | Jhamb     | Mumbai   |
| Chirag Jai Patil     | Chirag     | Jai         | Patil     | Gujrat   |
| Devansh Singh Rajput | Devansh    | Singh       | Rajput    | Rajastan |
| Mitul Kumar Sharma   | Mitul      | Kumar       | Sharma    | Patiala  |
+----------------------+------------+-------------+-----------+----------+
4 rows in set (0.00 sec)

上記のクエリの結果セットから、名前が3つの部分に分割されていることがわかります。名前がミドルネームで構成されていない場合、ミドルネームはNULLと見なされます。


  1. SUBSTRING_INDEXを使用してMySQLで文字列を分割する方法は?

    まずテーブルを作成しましょう- mysql> create table DemoTable1465    -> (    -> Name varchar(40)    -> ); Query OK, 0 rows affected (0.54 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1465 values('Chris Brown'); Query OK, 1 row affected (0.1

  2. MySQLを使用して文字列の一部(@の後のドメイン名)を置き換える方法は?

    最初にテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> EmailId varchar(30)    -> ); Query OK, 0 rows affected (0.53 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('John123@example.com'); Query OK, 1 row affected