สั่งซื้อโดยใน MySQL: การค้นหาแบบ ASC และ DESC พร้อมตัวอย่าง

⚡ สรุปอย่างชาญฉลาด

สั่งซื้อโดยใน MySQL คำสั่งนี้จะเรียงลำดับชุดผลลัพธ์จากน้อยไปมากหรือจากมากไปน้อยโดยใช้คำหลัก ASC และ DESC ส่วนด้านล่างจะอธิบายไวยากรณ์ การเรียงลำดับแบบคอลัมน์เดียวและหลายคอลัมน์ การจัดการค่า NULL และตัวอย่างการใช้งานที่ดำเนินการกับฐานข้อมูลตัวอย่าง myflixdb

  • 🔠 พฤติกรรมเริ่มต้น: ORDER BY จะเรียงลำดับจากน้อยไปมากเมื่อไม่ได้ระบุ ASC หรือ DESC ดังนั้น ASC จึงเป็นตัวเลือกเสริมในคำสั่งส่วนใหญ่
  • ⬆️ คำหลัก ASC: ASC จัดเรียงตัวเลขจากน้อยไปมาก สตริงจาก A ถึง Z และวันที่จากเก่าที่สุดไปใหม่ที่สุด
  • ⬇️ คำหลัก DESC: DESC จะกลับลำดับนั้น ซึ่งเหมาะกับประวัติการชำระเงินที่เรียงจากล่าสุดก่อน และรายการวันเกิดที่เรียงจากมากไปน้อย
  • 🧮 การเรียงลำดับแบบหลายคอลัมน์: ลำดับของคอลัมน์มีความสำคัญ คำสั่ง ORDER BY gender, date_of_birth DESC จะเรียงลำดับเพศจากน้อยไปมากก่อน จากนั้นจึงเรียงลำดับวันเกิดจากมากไปน้อยภายในแต่ละกลุ่ม
  • 🔎 การรวมข้อความ: คำสั่ง WHERE ใช้สำหรับกรองแถว คำสั่ง GROUP BY ใช้สำหรับรวมกลุ่มแถว คำสั่ง ORDER BY ใช้สำหรับเรียงลำดับผลลัพธ์ และคำสั่ง LIMIT ใช้สำหรับตัดส่วนที่ไม่จำเป็นออก
  • ⚙️ ปัจจัยด้านประสิทธิภาพ: ดัชนีบนคอลัมน์ที่เรียงลำดับแล้วช่วยให้ MySQL เพื่อหลีกเลี่ยงการใช้คำสั่ง filesort กับตารางขนาดใหญ่

สั่งซื้อโดยใน MySQL

ORDER BY คืออะไร? MySQL?

MySQL สั่งโดย เป็นคำสั่งที่ใช้ร่วมกับคำสั่ง SELECT เพื่อจัดเรียงข้อมูลตามลำดับ MySQL คำสั่ง ORDER BY จะเรียงลำดับชุดผลลัพธ์ของคำสั่งค้นหาในลำดับจากน้อยไปมากหรือจากมากไปน้อย โดยอาจเรียงตามคอลัมน์เดียวหรือหลายคอลัมน์พร้อมกันก็ได้

เมื่อใช้คำสั่ง SELECT เพียงอย่างเดียว ข้อมูลจะถูกส่งคืนตามลำดับที่ระบบจัดเก็บข้อมูลอ่านได้ ซึ่งไม่ใช่ลำดับที่รับประกัน การเรียงลำดับคือการจัดเรียงข้อมูลเหล่านั้นใหม่ตามลำดับที่กำหนด สามารถทำได้กับข้อมูลประเภทตัวเลข สตริง และวันที่

MySQL ไวยากรณ์ ORDER BY

ก่อนที่จะดูตัวอย่าง เราควรทำความเข้าใจก่อนว่าข้อความดังกล่าวอยู่ในส่วนใดของคำสั่ง SELECT แบบเต็ม

SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];

ที่นี่

  • "คำสั่ง SELECT... " คือคำสั่ง select ปกติ
  • - - แสดงถึงทางเลือกต่างๆ
  • “[เงื่อนไข WHERE | จัดกลุ่มตาม `field_name(s)` ที่มีเงื่อนไข]” เป็นเงื่อนไขเสริมที่ใช้ในการกรองชุดผลลัพธ์ของการค้นหา
  • "สั่งโดย" ทำการเรียงลำดับชุดผลลัพธ์การค้นหา
  • “[เอเอสซี | รายละเอียด]” เป็นคำหลักที่ใช้ในการเรียงลำดับชุดผลลัพธ์จากน้อยไปมากหรือจากมากไปน้อย โปรดทราบว่า ASC เป็นค่าเริ่มต้น

คำหลัก DESC และ ASC คืออะไร

ASC และ DESC เป็นทิศทางการเรียงลำดับสองแบบที่คำสั่ง ORDER BY รองรับ ตารางด้านล่างเปรียบเทียบทิศทางการเรียงลำดับทั้งสองแบบในประเภทข้อมูลที่คุณจะใช้ในการเรียงลำดับบ่อยที่สุด

คำหลัก DESC และ ASCASC เป็นรูปแบบย่อของการขึ้น คำหลัก DESC และ ASCMySQL DESC เป็นรูปแบบย่อของการลงจากมากไปน้อย
ใช้เพื่อจัดเรียงผลลัพธ์แบบสอบถามในรูปแบบจากบนลงล่าง ใช้สำหรับจัดเรียงผลลัพธ์การค้นหาจากล่างขึ้นบน
เมื่อทำงานกับชนิดข้อมูลวันที่ วันที่แรกสุดจะแสดงที่ด้านบนของรายการ เมื่อทำงานกับข้อมูลประเภทวันที่ วันที่ล่าสุดจะแสดงอยู่ด้านบนสุดของรายการ
เมื่อทำงานกับชนิดข้อมูลตัวเลข ค่าต่ำสุดจะแสดงที่ด้านบนของรายการ เมื่อทำงานกับข้อมูลประเภทตัวเลข ค่าสูงสุดจะปรากฏอยู่ด้านบนสุดของชุดผลลัพธ์การค้นหา
เมื่อทำงานกับชนิดข้อมูลสตริง ชุดผลลัพธ์คิวรีจะถูกเรียงลำดับจากที่ขึ้นต้นด้วยตัวอักษร A ไปจนถึงตัวอักษร Z เมื่อทำงานกับชนิดข้อมูลสตริง ชุดผลลัพธ์คิวรีจะถูกเรียงลำดับจากที่ขึ้นต้นด้วยตัวอักษร Z ลงไปถึงตัวอักษร A

คีย์เวิร์ด SQL DESC และ ASC ต่างก็ใช้ร่วมกับคำสั่ง SELECT และ MySQL เรียงตามข้อ

ไวยากรณ์ DESC และ ASC

คีย์เวิร์ดการเรียงลำดับ SQL DESC มีรูปแบบพื้นฐานดังต่อไปนี้

SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC | DESC [LIMIT N];

ที่นี่

  • SELECT {ชื่อฟิลด์ | *} จากชื่อตาราง คือคำสั่งที่มีฟิลด์และตารางที่จะใช้ดึงชุดผลลัพธ์
  • [เงื่อนไขอยู่ที่ไหน] เป็นทางเลือกแต่สามารถใช้เพื่อกรองข้อมูลตามเงื่อนไขที่กำหนดได้
  • เรียงลำดับตามชื่อฟิลด์ เป็นค่าบังคับและระบุชื่อฟิลด์ที่จะใช้ในการเรียงลำดับ MySQL คำหลัก DESC ระบุว่าการเรียงลำดับเป็นไปตามลำดับจากมากไปน้อย
  • [จำกัดจำนวน] เป็นตัวเลือกเสริม แต่สามารถใช้เพื่อจำกัดจำนวนแถวที่แสดงในชุดผลลัพธ์ของการค้นหาได้

เหตุใดจึงใช้ DESC และ ASC ใน MySQL?

การรู้ไวยากรณ์เป็นเพียงครึ่งหนึ่งของภาพรวมทั้งหมด เหตุผลที่ต้องมีคำสั่ง ORDER BY ก็เพราะว่าชุดผลลัพธ์ที่ฐานข้อมูลสร้างได้ง่ายนั้น อาจไม่ใช่เรื่องง่ายสำหรับมนุษย์ที่จะอ่านเสมอไป

สมมติว่าคุณต้องการพิมพ์ประวัติการชำระเงินของสมาชิกห้องสมุดวิดีโอเพื่อให้พนักงานต้อนรับสามารถตอบคำถามได้อย่างรวดเร็ว การแสดงผลการชำระเงินตามลำดับเวลาจากล่าสุดไปยังเก่าที่สุดนั้นดูสมเหตุสมผลกว่ามาก คำว่า DESC ใน SQL จึงเป็นคำหลักที่ใช้ประโยชน์ได้ดีในสถานการณ์เช่นนี้ เพราะสามารถเรียงลำดับรายการตามวันที่ชำระเงินได้

สมมติว่าฝ่ายการตลาดต้องการรายชื่อภาพยนตร์แยกตามหมวดหมู่ เพื่อให้สมาชิกสามารถดูได้ว่าห้องสมุดมีภาพยนตร์เรื่องใดบ้างก่อนที่จะเช่า การเรียงลำดับชื่อหมวดหมู่และชื่อภาพยนตร์จากน้อยไปมากจะช่วยให้สมาชิกค้นหาข้อมูลได้อย่างรวดเร็ว เหมือนกับการค้นหาในสารบัญ คำหลัก ASC จึงตอบโจทย์นี้ได้

โดยสรุปแล้ว คำสั่ง ORDER BY จะแปลงชุดผลลัพธ์ดิบให้เป็นรายงาน คำหลักที่คุณเลือกจะขึ้นอยู่กับคำถามที่ผู้อ่านถาม: เกิดอะไรขึ้นล่าสุด เรียกร้องให้ใช้ DESC ในขณะที่ ฉันจะหาซื้อสินค้าชิ้นนี้ได้ที่ไหน เรียกร้องให้มี ASC

MySQL ตัวอย่างการเรียงลำดับตาม

ตัวอย่างทั้งหมดต่อไปนี้จะทำงานกับฐานข้อมูลตัวอย่าง myflixdb เริ่มต้นด้วยตารางสมาชิกที่ยังไม่ได้เรียงลำดับ ซึ่งจะแสดงผลในลำดับเริ่มต้น

SELECT * FROM members;

ดำเนินการสคริปต์ข้างต้นใน MySQL การทดสอบด้วย Workbench กับ myflixdb ให้ผลลัพธ์ดังที่แสดงด้านล่าง

หมายเลขสมาชิก full_names เพศ วันเกิด ทางกายภาพ_ที่อยู่ ที่อยู่ไปรษณีย์ หมายเลขติดต่อ อีเมล
1 เจเน็ต โจนส์ หญิง 21-07-1980 ถนนสายแรก แปลงที่ 4 กระเป๋าส่วนตัว 0759 253 542 janetjones@yagoo.cm
2 เจเน็ต สมิธ โจนส์ หญิง 23-06-1980 เมลโรส 123 NULL NULL jj@fstreet.com
3 โรเบิร์ต ฟิล ชาย 12-07-1989 3 ถนน 34 NULL 12345 rm@tstreet.com
4 กลอเรียวิลเลียมส์ หญิง 14-02-1984 2 ถนน 23 NULL NULL NULL
5 ลีโอนาร์ด ฮอฟสตัดเตอร์ ชาย NULL วู้ดเครสต์ NULL 845738767 NULL
6 เชลดอนคูเปอร์ ชาย NULL วู้ดเครสต์ NULL 976736763 NULL
7 ราชสีห์ คูทรพาลี ชาย NULL วู้ดเครสต์ NULL 938867763 NULL
8 เลสลี่ วิงเคิล ชาย 14-02-1984 วู้ดเครสต์ NULL 987636553 NULL
9 ฮาวเวิร์ด โวโลวิทซ์ ชาย 24-08-1981 SouthPark PO Box 4563 987786553 NULL

การเรียงลำดับจากมากไปน้อยด้วย DESC

สมมติว่าฝ่ายการตลาดต้องการให้ข้อมูลสมาชิกเรียงลำดับจากวันเกิดที่มากที่สุดไปน้อยที่สุด เพื่อช่วยให้ทีมสามารถส่งคำอวยพรวันเกิดได้ทันท่วงที รายชื่อดังกล่าวได้มาจากการใช้คำสั่งค้นหาด้านล่าง

SELECT * FROM members ORDER BY date_of_birth DESC;

ดำเนินการสคริปต์ข้างต้นใน MySQL การทดสอบด้วย Workbench กับ myflixdb ให้ผลลัพธ์ดังที่แสดงด้านล่าง

MySQL ผลลัพธ์การค้นหา ORDER BY DESC

เรียงลำดับจากน้อยไปมาก (ASC)

การค้นหาแบบเดียวกันในลำดับจากน้อยไปมาก เพียงแค่สลับคำหลักเท่านั้น

SELECT * FROM members ORDER BY date_of_birth ASC;

MySQL ผลลัพธ์การค้นหา ORDER BY ASC

หมายเหตุ NULL หมายถึงไม่มีค่าใดๆ เลย ซึ่งไม่เหมือนกับศูนย์หรือสตริงว่าง สังเกตในภาพหน้าจอทั้งสองภาพว่าวันที่ที่เป็น NULL ถูกจัดกลุ่มไว้ด้วยกันอย่างไร: MySQL ระบบจะถือว่าค่า NULL มีค่าต่ำกว่าค่าอื่นๆ ดังนั้นแถวที่มีค่า NULL จะปรากฏก่อนในลำดับ ASC และแถวที่มีค่า NULL จะปรากฏทีหลังในลำดับ DESC

วิธีการเรียงลำดับตามหลายคอลัมน์ใน MySQL

การเรียงลำดับตามคอลัมน์เดียวจะตอบคำถามง่ายๆ แต่โดยทั่วไปแล้วรายงานมักต้องการการเรียงลำดับในระดับที่สอง และคำสั่ง ORDER BY สามารถรับรายการฟิลด์ที่คั่นด้วยเครื่องหมายจุลภาคเพื่อจุดประสงค์นั้นได้

พิจารณาสคริปต์การเรียงลำดับ SQL ต่อไปนี้ ซึ่งแสดงรายการบันทึกสมาชิกทั้งหมดโดยไม่มีคำสั่งกำหนดทิศทางที่ชัดเจน

SELECT * FROM `members`;

เมื่อดำเนินการสคริปต์ข้างต้นจะได้ผลลัพธ์ดังแสดงด้านล่าง

หมายเลขสมาชิก full_names เพศ วันเกิด ทางกายภาพ_ที่อยู่ ที่อยู่ไปรษณีย์ หมายเลขติดต่อ อีเมล
1 เจเน็ต โจนส์ หญิง 21-07-1980 ถนนสายแรก แปลงที่ 4 กระเป๋าส่วนตัว 0759 253 542 janetjones@yagoo.cm
2 เจเน็ต สมิธ โจนส์ หญิง 23-06-1980 เมลโรส 123 NULL NULL jj@fstreet.com
3 โรเบิร์ต ฟิล ชาย 12-07-1989 3 ถนน 34 NULL 12345 rm@tstreet.com
4 กลอเรียวิลเลียมส์ หญิง 14-02-1984 2 ถนน 23 NULL NULL NULL
5 ลีโอนาร์ด ฮอฟสตัดเตอร์ ชาย NULL วู้ดเครสต์ NULL 845738767 NULL
6 เชลดอนคูเปอร์ ชาย NULL วู้ดเครสต์ NULL 976736763 NULL
7 ราชสีห์ คูทรพาลี ชาย NULL วู้ดเครสต์ NULL 938867763 NULL
8 เลสลี่ วิงเคิล ชาย 14-02-1984 วู้ดเครสต์ NULL 987636553 NULL
9 ฮาวเวิร์ด โวโลวิทซ์ ชาย 24-08-1981 SouthPark PO Box 4563 987786553 NULL

การเรียงลำดับคอลัมน์เดียวตามลำดับเริ่มต้น

สมมติว่าเราต้องการรายการที่เรียงลำดับชุดผลลัพธ์การค้นหาโดยใช้ฟิลด์เพศ สคริปต์ด้านล่างนี้ทำเช่นนั้นโดยไม่ต้องระบุทิศทาง

SELECT * FROM `members` ORDER BY `gender`;
หมายเลขสมาชิก full_names เพศ วันเกิด ทางกายภาพ_ที่อยู่ ที่อยู่ไปรษณีย์ หมายเลขติดต่อ อีเมล
1 เจเน็ต โจนส์ หญิง 21-07-1980 ถนนสายแรก แปลงที่ 4 กระเป๋าส่วนตัว 0759 253 542 janetjones@yagoo.cm
2 เจเน็ต สมิธ โจนส์ หญิง 23-06-1980 เมลโรส 123 NULL NULL jj@fstreet.com
4 กลอเรียวิลเลียมส์ หญิง 14-02-1984 2 ถนน 23 NULL NULL NULL
3 โรเบิร์ต ฟิล ชาย 12-07-1989 3 ถนน 34 NULL 12345 rm@tstreet.com
5 ลีโอนาร์ด ฮอฟสตัดเตอร์ ชาย NULL วู้ดเครสต์ NULL 845738767 NULL
6 เชลดอนคูเปอร์ ชาย NULL วู้ดเครสต์ NULL 976736763 NULL
7 ราชสีห์ คูทรพาลี ชาย NULL วู้ดเครสต์ NULL 938867763 NULL
8 เลสลี่ วิงเคิล ชาย 14-02-1984 วู้ดเครสต์ NULL 987636553 NULL
9 ฮาวเวิร์ด โวโลวิทซ์ ชาย 24-08-1981 SouthPark PO Box 4563 987786553 NULL

สมาชิกที่เป็น "เพศหญิง" จะแสดงก่อน ตามด้วยสมาชิกที่เป็น "เพศชาย" ทั้งนี้เนื่องจากเมื่อใช้คำสั่ง ORDER BY โดยไม่ระบุ ASC หรือ MySQL คำหลัก DESC, MySQL โดยค่าเริ่มต้น ระบบจะเรียงลำดับชุดผลลัพธ์การค้นหาจากน้อยไปมาก

การเรียงลำดับสองคอลัมน์ในทิศทางตรงกันข้าม

ต่อไปนี้เรามาดูตัวอย่างที่แสดงการทำงานดังกล่าวกัน การเรียงลำดับโดยใช้สองคอลัมน์คอลัมน์แรกคือ เรียง in ลำดับจากน้อยไปมาก โดยค่าเริ่มต้น ในขณะที่คอลัมน์ที่สองคือ เรียง in ลำดับจากมากไปน้อย.

SELECT * FROM `members` ORDER BY `gender`, `date_of_birth` DESC;

ดำเนินการสคริปต์ข้างต้นใน MySQL การทดสอบด้วย Workbench กับ myflixdb ให้ผลลัพธ์ดังต่อไปนี้

MySQL ตัวอย่างการเรียงลำดับตามสองคอลัมน์

โดยค่าเริ่มต้น คอลัมน์เพศจะถูกจัดเรียงจากน้อยไปมาก ในขณะที่คอลัมน์วันเกิดจะถูกจัดเรียงจากมากไปน้อยอย่างชัดเจน คำสำคัญแสดงทิศทางแต่ละคำจะใช้ได้เฉพาะกับคอลัมน์ที่ตามมาเท่านั้น

วิธีการใช้คำสั่ง ORDER BY ร่วมกับ WHERE, LIMIT และ GROUP BY

โดยปกติแล้ว ORDER BY ไม่ใช่เงื่อนไขเดียวในคำสั่งค้นหาข้อมูลที่ใช้ในการผลิต MySQL โปรแกรมจะประเมินข้อความตามลำดับที่กำหนดไว้เสมอ และการทราบลำดับนั้นจะช่วยอธิบายว่าทำไมผลลัพธ์จึงออกมาเป็นเช่นนั้น

  1. จาก อ่านข้อมูลแต่ละแถวจากตาราง
  2. WHERE ลบแถวที่ไม่ตรงตามเงื่อนไขออก
  3. จัดกลุ่มตาม คำสั่งนี้จะรวมแถวที่เหลืออยู่เข้าด้วยกันเป็นกลุ่ม จากนั้นคำสั่ง HAVING จะกรองกลุ่มเหล่านั้น
  4. สั่งโดย เรียงลำดับตามแถวที่เหลืออยู่
  5. LIMIT ตัดแถวตามจำนวนที่ต้องการออกจากรายการที่เรียงลำดับแล้ว

เนื่องจากคำสั่ง ORDER BY ทำงานหลัง WHERE และ GROUP BY แต่ก่อน LIMIT ดังนั้นคำสั่งค้นหาเช่น “สมาชิกที่อายุน้อยที่สุดห้าคนจาก Woodcrest” จึงแสดงออกมาในคำสั่งเดียว

SELECT full_names, date_of_birth FROM members
WHERE physical_address = 'Woodcrest'
ORDER BY date_of_birth DESC
LIMIT 5;

ลำดับเดียวกันนี้ใช้กับผลลัพธ์ที่จัดกลุ่มไว้ด้วย ค่ารวมที่สร้างขึ้นโดย ฟังก์ชั่นรวม เช่น สามารถจัดเรียงข้อมูลจำนวนนับได้ เพื่อให้หมวดหมู่ที่มีการใช้งานมากที่สุดปรากฏอยู่ด้านบนสุดของรายงาน

SELECT gender, COUNT(*) AS members_count FROM members
GROUP BY gender
ORDER BY members_count DESC;

เคล็ดลับ: คำสั่ง ORDER BY สามารถเรียงลำดับตามชื่อเรียกแทนคอลัมน์ ตามนิพจน์ หรือแม้กระทั่งตามตำแหน่งของคอลัมน์ เช่น ORDER BY 3 การเรียงลำดับตามตำแหน่งนั้นไม่เสถียร เพราะการเพิ่มคอลัมน์ใหม่ลงในรายการ SELECT จะเปลี่ยนคีย์การเรียงลำดับโดยไม่แจ้งให้ทราบล่วงหน้า ดังนั้นควรตั้งชื่อคอลัมน์แทน

มีประเด็นสำคัญอย่างหนึ่งที่ควรจดจำเกี่ยวกับประสิทธิภาพการทำงาน เมื่อคอลัมน์ที่เรียงลำดับแล้วมีดัชนีอยู่ด้วย MySQL สามารถอ่านแถวตามลำดับดัชนีและข้ามขั้นตอนการเรียงลำดับไปได้เลย หากไม่มีดัชนี ตารางขนาดใหญ่จะบังคับให้มีการเรียงลำดับไฟล์ในหน่วยความจำหรือบนดิสก์ ซึ่งเป็นสาเหตุหลักที่ทำให้การค้นหาข้อมูลในรายงานช้าลง

คำถามที่พบบ่อย

สามารถทำได้ หากไม่มีดัชนีบนคอลัมน์ที่เรียงลำดับแล้ว MySQL คำสั่งนี้จะทำการเรียงลำดับไฟล์ (filesort) กับชุดผลลัพธ์ทั้งหมด การเพิ่มดัชนีที่ตรงกับคอลัมน์และทิศทางของคำสั่ง ORDER BY จะทำให้เซิร์ฟเวอร์อ่านแถวตามลำดับและข้ามขั้นตอนดังกล่าวไปได้

โดยปกติแล้วจะไม่เป็นเช่นนั้น การเรียงลำดับแบบเริ่มต้น เช่น utf8mb4_0900_ai_ci จะไม่คำนึงถึงตัวพิมพ์ใหญ่เล็ก ดังนั้น “apple” และ “Apple” จึงถูกจัดเรียงไว้ด้วยกัน การเรียงลำดับแบบไบนารีหรือ _cs หรือคำสั่ง ORDER BY BINARY column_name จะทำให้การจัดเรียงคำนึงถึงตัวพิมพ์ใหญ่เล็ก โดยตัวอักษรพิมพ์ใหญ่จะอยู่ลำดับแรก

ใช่แล้ว คำสั่ง ORDER BY RAND() จะสุ่มลำดับผลลัพธ์ ซึ่งมีประโยชน์สำหรับการเลือกภาพยนตร์หรือสมาชิกแบบสุ่ม คำสั่งนี้จะให้คะแนนทุกแถวก่อนเรียงลำดับ ดังนั้นควรใช้ร่วมกับคำสั่ง LIMIT และควรหลีกเลี่ยงการใช้กับตารางขนาดใหญ่มาก ๆ

ใช่แล้ว ตัวช่วย AI ที่ถูกสร้างไว้ในเครื่องมือต่างๆ เช่น MySQL ม้านั่งทำงานของช่างเครื่อง แปลงคำขอที่เป็นภาษาธรรมดาให้เป็นคำสั่ง SELECT พร้อมด้วย ORDER BY ตรวจสอบคอลัมน์การเรียงลำดับและทิศทางการเรียงลำดับที่สร้างขึ้นเสมอ เนื่องจาก AI ไม่สามารถรู้ได้ว่ารายงานของคุณต้องการการเรียงลำดับแบบใด

บางส่วนครับ ระบบที่ปรึกษาที่ขับเคลื่อนด้วย AI จะอ่านบันทึกการทำงานของคิวรีที่ช้า และแนะนำดัชนีที่จะช่วยลดการดำเนินการเรียงลำดับไฟล์ อย่างไรก็ตาม คำแนะนำเหล่านั้นยังคงต้องการการตรวจสอบจากมนุษย์ เนื่องจากดัชนีเพิ่มเติมแต่ละตัวจะทำให้การแทรกและการอัปเดตข้อมูลในตารางเดียวกันช้าลง

สรุปโพสต์นี้ด้วย: