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

จะสั่งซื้อตามความเกี่ยวข้องใน MySQL ได้อย่างไร


หากต้องการเรียงลำดับตามความเกี่ยวข้อง ให้ใช้คำสั่ง case เพื่อให้เข้าใจแนวคิด ให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง OrderByRelevance -> ( -> UserId int, -> UserName varchar(200) -> );Query OK, 0 แถวได้รับผลกระทบ (0.51 วินาที)

ตอนนี้คุณสามารถแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า OrderByRelevance (101,'Carol Smith'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> ลงในค่า OrderByRelevance (102,'Carol Adams'); ตกลง ตกลง 1 แถวได้รับผลกระทบ ( 0.17 วินาที) mysql> แทรกลงในค่า OrderByRelevance (103, 'Carolnathan Todd'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.33 วินาที) mysql> แทรกลงในค่า OrderByRelevance (104, 'John Smith'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว ( 0.22 วินาที) mysql> แทรกลงในค่า OrderByRelevance (105, 'Sam Carol Bond'); ตกลง ตกลง 1 แถว (0.12 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก OrderByRelevance;

ผลลัพธ์

<ก่อนหน้า>+---------+-----------------+| รหัสผู้ใช้ | ชื่อผู้ใช้ |+---------+-----------------+| 101 | แครอล สมิธ || 102 | แครอล อดัมส์ || 103 | แครอลนาธาน ทอดด์ || 104 | จอห์น สมิธ || 105 | แซม แครอล บอนด์ |+---------+-----------------+5 แถวในชุด (0.00 วินาที)

นี่คือแบบสอบถามเพื่อสั่งซื้อตามความเกี่ยวข้อง แบบสอบถามมีดังนี้ −

mysql> เลือก max(UserId) เป็น Id ชื่อผู้ใช้จาก OrderByRelevance -> โดยที่ UserName เช่น '%Carol%' จัดกลุ่มตามชื่อผู้ใช้ -> เรียงลำดับตามกรณีเมื่อชื่อผู้ใช้เช่น 'Carol%' แล้ว 0 -> เมื่อชื่อผู้ใช้เช่น '% %Carol% %' แล้ว 1 -> เมื่อชื่อผู้ใช้เช่น '%Carol' แล้ว 2 -> อื่น 3 -> สิ้นสุดชื่อผู้ใช้;

ผลลัพธ์

<ก่อนหน้า>+------+-----------------+| รหัส | ชื่อผู้ใช้ |+------+-----------------+| 102 | แครอล อดัมส์ || 101 | แครอล สมิธ || 103 | แครอลนาธาน ทอดด์ || 105 | Sam Carol Bond |+------+-----------------+4 แถวในชุด (0.00 วินาที)