ใช้ฟังก์ชัน LOCATE() และ SUBSTRING() ใน MySQL สำหรับงานนี้ครับ
สร้างตารางตัวอย่าง
mysql> create table DemoTable (
-> Title text
-> );
Query OK, 0 rows affected (0.54 sec)
เพิ่มข้อมูลตัวอย่าง
mysql> insert into DemoTable values('Introduction To Java');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Introduction - To MySQL');
Query OK, 1 row affected (0.16 sec)
แสดงข้อมูลทั้งหมด
mysql> select * from DemoTable;
ผลลัพธ์
+-------------------------+ | Title | +-------------------------+ | Introduction To Java | | Introduction - To MySQL | +-------------------------+ 2 rows in set (0.00 sec)
คำสั่งแสดงสตริงย่อยก่อนอักขระพิเศษ
mysql> select distinct
-> if(LOCATE(' - ', Title) > 0, SUBSTRING(Title, 1, LOCATE(' - ', Title)), Title)
from DemoTable;
ผลลัพธ์
+-----------------------------------------------------------------------------+
| if(LOCATE(' - ',Title)>0, SUBSTRING(Title, 1, LOCATE(' - ', Title)), Title) |
+-----------------------------------------------------------------------------+
| Introduction To Java |
| Introduction |
+-----------------------------------------------------------------------------+
2 rows in set (0.00 sec)
คำอธิบาย: สำหรับแถวที่มี ' - ' จะตัดเอาส่วนก่อนอักขระนั้น ส่วนแถวที่ไม่มีจะแสดงค่าเดิม