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

Cách chọn dữ liệu từ MYSQL với LIMIT chứa một phần tử có giá trị, ví dụ:1

Sử dụng UNION ALL và truy vấn phụ sẽ giúp bạn có được kết quả như mong đợi.

Truy vấn sau sẽ hữu ích trong trường hợp của bạn:

SELECT Answer FROM (
    SELECT * FROM (
        SELECT Answer, 1 AS ManualOrder FROM Answers WHERE Correct = 'true' AND QId = 1
        UNION ALL
        SELECT Answer, RAND() FROM Answers WHERE Correct != 'true' AND QId = 1 
    ) AS Q 
    ORDER BY ManualOrder DESC LIMIT 3
) W ORDER BY RAND()

Vui lòng tìm bản trình diễn trên db <> fiddle

Trong bản demo của tôi, Answer 04 là câu trả lời đúng cho id câu hỏi 1 , trong tập kết quả, Answer 04 luôn trả về cùng với 2 câu trả lời khác theo thứ tự ngẫu nhiê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. Hệ thống nhắn tin người dùng

  2. Làm cách nào để chuyển đổi datetime sang date, cắt bớt thời gian, để lại ngày tháng?

  3. PayPal IPN không cập nhật cơ sở dữ liệu MySQL

  4. Sử dụng Mysql trong dev / prod và H2 trong thử nghiệm

  5. Làm thế nào để kiểm tra số cổng mặc định cho kết nối mysql? Kết nối không hoạt động! kết nối jdbc