2012-03-30 34 views

Trả lời

13

Sau đây sẽ nhận được một questionID ngẫu nhiên từ bảng

MySQL

SELECT questionID FROM questions ORDER BY RAND() LIMIT 1 

MS Access

SELECT top 1 questionID from questions ORDER BY rnd(questionID) 
+8

phiên bản dành cho MS Access, dường như tạo ra các bản ghi ngẫu nhiên - nhưng cũng giống như các bản ghi đó mỗi lần! – kneidels

+1

AGREE .. cùng một hồ sơ ngẫu nhiên –

23

Để có được kỷ lục ngẫu nhiên khác nhau mà bạn có thể sử dụng, mà sẽ đòi hỏi một trường ID trong bảng của bạn

SELECT TOP 1 questionID FROM questions ORDER BY Rnd(-(100000*questionID)*Time()) 

Giá trị âm được truyền làm tham số cho hàm Rnd sẽ phân phối giá trị ngẫu nhiên đầu tiên từ trình tạo bằng cách sử dụng tham số này làm giá trị bắt đầu. (Một loại ngẫu nhiên được xác định). Đặc biệt cảm ơn gợi ý của @kobik từ các bình luận.

+2

Điều thú vị. Tôi đã kiểm tra tất cả các câu trả lời được đề xuất bao gồm cả việc này tôi nhận được các bản ghi ngẫu nhiên/khác nhau. nhưng ngay sau khi tôi chạy chương trình thử nghiệm của tôi một lần nữa kết quả là trong cùng một trình tự như trước. như thể trình tạo hạt giống ngẫu nhiên đặt lại mỗi lần trong truy cập ms. Sau này tôi tìm thấy điều này: [Trình tạo số ngẫu nhiên không quá ngẫu nhiên] (http://database.ittoolbox.com/groups/technical-functional/access-l/random-number-generator-query-not-so-random- 3887838) – kobik

+0

nó làm cùng một điều bummi, mỗi lần tôi chạy nó tôi nhận được 4 kết quả tương tự –

+0

vì vậy cách bạn đề xuất sửa lỗi @Kobik –

4
SELECT TOP 5 questionID FROM [tableName] ORDER BY rnd(INT(NOW*questionID)-NOW*questionID) 

này sẽ cung cấp cho bạn một bộ mới của câu trả lời mọi thời gian, bạn thậm chí không cần phải tạo nên một thời gian khi bạn sử dụng "NOW" (mà sẽ mỗi khi có một thời gian mới, bạn bấm này không có vấn đề nhanh như thế nào bạn nhấp vào), theo ý kiến ​​của tôi là cách đơn giản và gọn gàng nhất để giải quyết vấn đề này trong Access.

+0

Điều này hoàn toàn phù hợp với tôi. Tất cả các phương thức khác cho cùng một tập hợp các bản ghi. Làm tốt lắm. – MatVAD

Các vấn đề liên quan