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

เรียงลำดับด้วย LIKE ใน MySQL ใช้ CASE WHEN

ใช้ CASE WHEN ... LIKE ... THEN priority ใน ORDER BY เพื่อจัดลำดับตาม Pattern รูปแบบ:

SELECT * FROM yourTableName
ORDER BY CASE
    WHEN col LIKE '%pattern1%' THEN 1
    WHEN col LIKE '%pattern2%' THEN 2
    ELSE 3
END;

ตัวอย่าง: เรียงตามนามสกุล

สร้างตาราง 6 เรคคอร์ด (มี Taylor, Miller, Smith, Williams)

mysql> SELECT * FROM OrderByLikeDemo
    -> ORDER BY CASE
    ->   WHEN Name LIKE '%Taylor%' THEN 1
    ->   WHEN Name LIKE '%Miller%' THEN 2
    ->   ELSE 3
    -> END;

ผลลัพธ์: Taylor ก่อน → Miller → อื่นๆ

+------+--------------+
| Id   | Name         |
+------+--------------+
| 101  | Carol Taylor |
| 103  | Mike Taylor  |
| 102  | David Miller |
| 104  | Bob Miller   |
| 100  | John Smith   |
| 105  | Sam Williams |
+------+--------------+

ประยุกต์: จัดลำดับตาม Category, Tag, หรือ Keyword ที่สำคัญ