ลำดับเริ่มต้นสำหรับ SELECT แบบง่ายในตาราง MySQL ที่มีคอลัมน์ AUTO_INCREMENT คืออะไร [ซ้ำกัน]

ฉันมีตาราง (mytable) ที่มีคอลัมน์ AUTO_INCREMENT (id_mt) เมื่อฉันทำแบบสอบถามง่ายๆเช่น

SELECT * FROM mytable;

ผลลัพธ์จะเรียงลำดับตามคอลัมน์ AUTO_INCREMENT เช่นเดียวกับ

SELECT * FROM mytable order by id_mt;

ดังนั้นคำถามของฉันคือ: อะไรคือกฎ (ถ้ามี) สำหรับลำดับผลลัพธ์เมื่อคุณไม่ใช้ 'order by' และถ้าคุณมีคอลัมน์ AUTO_INCREMENT

เพื่อความชัดเจนสำหรับบางคนที่อ้างถึงโพสต์อื่น: ฉันไม่ได้ใช้

ALTER TABLE mytable ORDER BY sort_order ASC;

เป็นที่ชัดเจนว่าแบบสอบถามนี้เพียงแค่เปลี่ยนประสิทธิภาพเมื่อคุณใช้แบบสอบถาม ORDER BY คำถามของฉันคือ 'AUTO_INCREMENT เปลี่ยนแปลง (บังคับ ?) ลำดับของ SELECT แบบง่ายหรือไม่'


person philnext    schedule 14.04.2013    source แหล่งที่มา
comment
โดยปกติจะขึ้นอยู่กับว่าไฟล์ถูกเขียนที่ไหน   -  person hjpotter92    schedule 14.04.2013
comment
@MarcinJuraszek ไม่มีโพสต์นี้เกี่ยวกับคำสั่งซื้อเริ่มต้นด้วย 'sort_order'   -  person philnext    schedule 14.04.2013


คำตอบ (1)


จากไซต์ DBA Stack Exchange:

ในโลกของ SQL ลำดับไม่ใช่คุณสมบัติโดยธรรมชาติของชุดข้อมูล ดังนั้น คุณจะไม่ได้รับการรับประกันจาก RDBMS ของคุณว่าข้อมูลของคุณจะกลับมาในลำดับที่แน่นอน หรือแม้แต่ในลำดับที่สอดคล้องกัน เว้นแต่ว่าคุณจะสืบค้นข้อมูลของคุณด้วยคำสั่งย่อย ORDER BY

  • ดังนั้น เพื่อตอบคำถามของคุณ MySQL จะจัดเรียงบันทึกตามที่คุณต้องการ โดยไม่มีการรับประกันความสอดคล้องใดๆ
  • หากคุณเพียงสงสัยเกี่ยวกับระบบภายในของ MySQL Rolando ให้คำตอบที่น่าสนใจ
  • ในทางกลับกัน หากคุณตั้งใจจะใช้คำสั่งซื้อนี้เพื่อสิ่งใด คุณต้องระบุคำสั่งซื้อที่คุณต้องการโดยใช้ ORDER BY การทำอย่างอื่นคือการเตรียมตัวเองให้พร้อมสำหรับสิ่งที่ไม่คาดคิด
person John Conde    schedule 14.04.2013
comment
แน่นอนว่าฉันรู้ทฤษฎี: 'ใช้ ORDER BY เสมอถ้าคุณต้องการ ORDER BY' ฉันแค่สงสัยเกี่ยวกับการสั่งซื้อภายใน โดยเฉพาะเมื่อคุณมีคอลัมน์ AUTO_INCREMENT - person philnext; 15.04.2013