คุณต้องใช้นิพจน์ทั่วไปกับคำสั่งย่อย ORDER BY ไวยากรณ์มีดังนี้:
เลือก *จาก yourTableNameORDER BY IF(yourColumnName RLIKE '^[a-z]', 1, 2),yourColumnName;
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้:
mysql> สร้างตาราง AlphabetFirstThatNumberDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT, -> Name varchar(20), -> PRIMARY KEY(Id) -> );Query OK, 0 แถวได้รับผลกระทบ (0.95 วินาที)ก่อน>แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้:
mysql> แทรกลงในค่า AlphabetFirstThatNumberDemo (ชื่อ) ('John'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.37 วินาที) mysql> แทรกลงในค่า AlphabetFirstThatNumberDemo (ชื่อ) ('Bob'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.21 วินาที) mysql> แทรกลงในค่า AlphabetFirstThatNumberDemo (ชื่อ) ('1Sam'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า AlphabetFirst จากนั้นNumberDemo (ชื่อ) ('Carol'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.22 วินาที) mysql> แทรกลงในค่า AlphabetFirstThatNumberDemo (ชื่อ) ('2Larry'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.31 วินาที) mysql> แทรกลงในค่า AlphabetFirst จากนั้นNumberDemo (ชื่อ) ('David'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.27 วินาที) mysql> แทรกลงในค่า AlphabetFirstThatNumberDemo (ชื่อ) ('3Mike'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า AlphabetFirst จากนั้นNumberDemo (ชื่อ) ('Robert'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.10 วินาที)ตอนนี้คุณสามารถแสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้:
mysql> เลือก *จาก AlphabetFirstThatNumberDemo;ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+----+---------+| รหัส | ชื่อ |+----+--------+| 1 | จอห์น || 2 | บ๊อบ || 3 | 1แซม || 4 | แครอล || 5 | 2ลาร์รี่ || 6 | เดวิด || 7 | 3ไมค์ || 8 | Robert |+----+-------+8 แถวในชุด (0.00 วินาที)
นี่คือลำดับการสืบค้นตามตัวอักษรก่อนแล้วตามด้วยตัวเลข แบบสอบถามมีดังนี้:
mysql> เลือก *จาก AlphabetFirstThatNumberDemo -> ORDER BY IF(Name RLIKE '^[a-z]', 1, 2),Name;
ต่อไปนี้เป็นผลลัพธ์:
<ก่อนหน้า>+----+---------+| รหัส | ชื่อ |+----+--------+| 2 | บ๊อบ || 4 | แครอล || 6 | เดวิด || 1 | จอห์น || 8 | โรเบิร์ต || 3 | 1แซม || 5 | 2ลาร์รี่ || 7 | 3Mike |+----+-------+8 แถวในชุด (0.00 วินาที)