Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tại sao kết quả từ một truy vấn SQL không trở lại theo thứ tự tôi mong đợi?

Thứ tự của một truy vấn có thể được ép buộc bằng cách sử dụng Mệnh đề 'Order by' trong câu lệnh. Cơ sở dữ liệu SQL thực sự không hiểu thứ tự bạn đặt mọi thứ hoặc lưu trữ dữ liệu theo thứ tự nhất định. Điều này có nghĩa là bạn cần cho SQL biết bạn muốn các mục theo thứ tự nào. Ví dụ:

Select * from Table
  order by column1 desc

Hãy nghĩ về điều đó giống như giao một số thứ cho bạn của bạn giữ - cô ấy sẽ có tất cả những thứ đó cho bạn sau này, nhưng cô ấy sẽ cất giữ nó ở một nơi nào đó trong thời gian ngắn. Cô ấy có thể di chuyển nó xung quanh trong khi bạn không muốn nhường chỗ cho thứ khác hoặc có thể giao nó lại theo đúng thứ tự bạn đã đưa cho cô ấy, nhưng bạn đã không bảo cô ấy giữ nó theo thứ tự, vì vậy cô ấy không .

Cơ sở dữ liệu cần có khả năng di chuyển mọi thứ trong nền, vì vậy cách chúng được xây dựng về bản chất không biết về bất kỳ thứ tự nào - bạn cần biết thứ tự khi bạn đưa nó vào cơ sở dữ liệu, để bạn có thể đưa nó trở lại thứ tự bạn muốn sau. Mệnh đề order cho phép SQL áp đặt một thứ tự lên dữ liệu, nhưng nó không nhớ hoặc có một thứ tự của riêng nó.

Điểm quan trọng :Ngay cả khi SQL trả lại các mục theo đúng thứ tự mà không có lệnh theo câu lệnh trong 1 triệu lần gần đây nhất, nó không đảm bảo rằng nó sẽ làm như vậy. Ngay cả khi một chỉ mục nhóm tồn tại trên bảng, kết quả không được đảm bảo sẽ được trả về theo thứ tự bạn mong đợi. Đặc biệt là khi các phiên bản SQL thay đổi, việc không sử dụng mệnh đề thứ tự một cách rõ ràng có thể phá vỡ các chương trình giả định rằng truy vấn sẽ theo thứ tự họ muốn!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng bộ nhớ tối đa MySQL

  2. Làm cách nào để lưu trữ và truy xuất hình ảnh từ cơ sở dữ liệu MySQL bằng PHP?

  3. Trình kích hoạt MySQL không thể cập nhật các hàng trong cùng một bảng mà trình kích hoạt được chỉ định. Cách giải quyết được đề xuất?

  4. Nhóm theo tháng và năm trong MySQL

  5. GET_FORMAT () Ví dụ - MySQL