Devdit
 

SQL แยก string ออกจากกัน และตั้งเป็น column ใหม่

1.7K

SQL แยก string ออกจากกัน และตั้งเป็น column ใหม่ บทความนี้สอนใช้คำสั่ง SUBSTRING_INDEX ของ SQL เพื่อแยก string ด้วยค่าที่ต้องการ และตั้งเป็น column ใหม่ด้วยคำสั่ง AS สามารถเขียนคำสั่งได้ดังนี้

 

ตัวอย่าง ข้อมูลในตาราง test

+----+-------------+
| id | name        |
+----+-------------+
|  1 | Somchai ABC |
|  2 | Somying DEF |
+----+-------------+

 

ตัวอย่าง SQL แยก string ออกจากกัน และตั้งเป็น column ใหม่

SELECT SUBSTRING_INDEX(name,' ', 1) AS first_name, SUBSTRING_INDEX(name,' ', -1) AS last_name FROM test;

ผลลัพธ์

+------------+-----------+
| first_name | last_name |
+------------+-----------+
| Somchai    | ABC       |
| Somying    | DEF       |
+------------+-----------+
2 rows in set (0.001 sec)

คำอธิบาย

SQL แยก string ออกจากกัน ตัวอย่างต้องการแยก string ด้วยค่าว่าง ให้เป็น Somchai ตั้งชื่อว่า first_name และ ABC เป็น last_name สามารถอธิบายคำสั่ง SQL ได้ดังนี้

1. SELECT SUBSTRING_INDEX(name,' ', 1) AS first_name คือ แยก string ของ column name ด้วยค่าว่างเปล่า เลข 1 เป็นจำนวนเต็มบวกจึงอ้างถึงข้อมูลก่อนช่องว่าง (ข้อมูลทางซ้าย) พร้อมตั้งชื่อว่า first_name

2. SUBSTRING_INDEX(name,' ', -1) AS last_name คือ รายละเอียดเหมือนข้อ 1 แต่เป็นตัวเลขติดลบจึงอ้างถึงข้อมูลทางฝั่งขวา หรือข้อมูลหลังช่องว่าง และตั้งชื่อ column ว่า last_name

3. FROM test คือ ดึงข้อมูลจากตาราง test

แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ