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

Nhóm kết quả ngẫu nhiên của MySQL theo thứ tự theo

Truy vấn của bạn chống lại tiêu chuẩn sql vì bạn liệt kê các cột trong danh sách chọn mà bạn không liệt kê trong nhóm theo mệnh đề, cũng không phải là đối tượng của một hàm tổng hợp, chẳng hạn như count (). MySQL cho phép chức năng này trong các cài đặt chế độ sql nhất định.

Tuy nhiên, ngay cả khi chức năng này được bật, MySQL vẫn có hạn chế về dữ liệu được chọn từ các trường không được tổng hợp :

Vì vậy, thay vì sử dụng nhóm theo, hãy sử dụng sắp xếp và mệnh đề giới hạn để giới hạn đầu ra:

select * from job
    where type = 1
    order by rand()
    limit 1

Cũng xin lưu ý rằng phương pháp lựa chọn ngẫu nhiên này rất tốn tài nguyên, vì MySQL trước tiên phải sắp xếp toàn bộ tập kết quả mà không sử dụng bất kỳ chỉ mục nào. Có những cách khác để chọn ngẫu nhiên dữ liệu từ một bảng mà không cần sử dụng order by rand() .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xóa dữ liệu khỏi tất cả các bảng trong MYSQL

  2. Sqoop Nhập - hàm mật khẩu-tệp không hoạt động bình thường trong sqoop 1.4.4

  3. Cách tốt nhất để lưu trữ MySQL trên Azure Cloud

  4. MySqlConnection.StateChange không bao giờ tìm nạp

  5. vấn đề về bộ ký tự với mysql