Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แสดงสตริงย่อยก่อนอักขระพิเศษใน MySQL

ใช้ฟังก์ชัน 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)

คำอธิบาย: สำหรับแถวที่มี ' - ' จะตัดเอาส่วนก่อนอักขระนั้น ส่วนแถวที่ไม่มีจะแสดงค่าเดิม