สำหรับเรื่องนี้ ใช้ LIKE clause ครับ
สร้างตารางตัวอย่าง
mysql> create table DemoTable (
-> ClientName varchar(100)
-> );
Query OK, 0 rows affected (0.85 sec)
เพิ่มข้อมูลตัวอย่าง
mysql> insert into DemoTable values('John Smith');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Smith John');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('Jone Deo');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('Deo Jone');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Chris Brown');
Query OK, 1 row affected (0.15 sec)
แสดงข้อมูลทั้งหมด
mysql> select * from DemoTable;
ผลลัพธ์
+-------------+ | ClientName | +-------------+ | John Smith | | Smith John | | Jone Deo | | Deo Jone | | Chris Brown | +-------------+ 5 rows in set (0.00 sec)
คำสั่งดึง "Jone Deo" หรือ "Deo Jone" ในคิวรี่เดียว
mysql> select * from DemoTable
-> where ClientName
-> LIKE
-> (SELECT SUBSTRING_INDEX("%Jone% %Deo%", " ", -1))
-> or
-> (SELECT SUBSTRING_INDEX("%Deo% %Jone%", " ", 1));
ผลลัพธ์
+------------+ | ClientName | +------------+ | Jone Deo | | Deo Jone | +------------+ 2 rows in set (0.00 sec)
คำอธิบาย: ใช้ SUBSTRING_INDEX ดึงส่วนท้ายและส่วนหน้าของ pattern แล้วใช้ LIKE กับ OR รวมเงื่อนไขทั้งสองรูปแบบ