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

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


わかりやすくするために、「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 | Rajasthan | Devansh@Hotmail.com |
| Mitul Kumar Sharma   | Om Veer Sharma       | Patiala   | Mitul@gmail.com     |
+----------------------+----------------------+-----------+---------------------+
4 rows in set (0.00 sec)

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

mysql> SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(Name, ' ', 1), ' ', -1) AS First_Name, TRIM( SUBSTR(Name, LOCATE(' ', Name)) ) AS Last_Name FROM Customerdetail;
+------------+--------------+
| First_Name | Last_Name    |
+------------+--------------+
| Advik      | Jhamb        |
| Chirag     | Jai Patil    |
| Devansh    | Singh Rajput |
| Mitul      | Kumar Sharma |
+------------+--------------+
4 rows in set (0.00 sec)

上記のクエリの結果セットから、名前が2つの部分に分割されていることが明らかです。ミドルネームは名前の一部と見なされます。


  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