PDA

View Full Version : Tạo bài ngẫu nhiên



walldavist
20-08-2007, 16:42
Em đang viết web bằng ASP, VBScrit, SQL 2000. Em có một bảng các bài báo, mỗi bài có các ID khác nhau và không liền nhau. Em muốn tạo ra các bài báo lấy ngẫu nhiên ra từ bảng này thì làm thế nào vậy các anh.

MichaelTuanAnh
21-08-2007, 15:53
bạn có thể viết thế này



SELECT col1, col2
FROM YourTable
ORDER BY NEWID()

walldavist
21-08-2007, 21:10
ORDER BY NEWID ?

Làm như vậy thì giả sử mình lấy 10 bài ngẫu nhiên, thì thực ra chỉ có 10 bài có ID bé nhất được lấy ra thôi bạn à.

Và khi chạy lại lệnh này lần sau thì nó cũng chỉ lấy ra 10 có ID bé nhất, rất có thể là vẫn như cũ, tức là lần nào cũng lấy ra 10 bản y hệt nhau.

Mình thấy cách này không ổn.

Trong VBScritp có cho tạo số ngẫu nhiên, nhưng chỉ trong [0,1].

saigon1990
22-08-2007, 06:07
Tui thấy cách của MichaelTuanAnh là quá ổn đi chứ!
bạn thấy không ổn ở chỗ nào?
--> NewID() ở đây là 1 function tạo ra GUID của SQL, chứ đâu phải là một column trong table của bạn đâu mà return 10 ID bé nhất.

select top 10 col1, col2
from yourtable
order by newID()


Còn vấn đề VBScript tạo ra ngẫu nhiên từ 0-1 là đủ rồi!!! bạn chỉ việc nhân số ngẫu nhiên đó với N thì bạn sẽ được một số ngẫu nhiên từ 0 đến N

good luck

walldavist
22-08-2007, 16:11
Kikiki, thanks các bác.

Tại em tưởng "NewID" ở đây là cột Articles_ID trong bảng của mình. Em chưa biết function nài nên ko rõ. Thanks các bác nha. Em làm đc roài.

Kikiki.

walldavist
22-08-2007, 16:33
Em vừa upload xong, chạy tít lắm, thanks các bác đã chỉ giáo nha.

Em có một câu hỏi khác.

Cũng ở cái bảng tbArticles trên của em. Em muốn liệt kê ra 10 bài viết có số lần đọc nhiều nhất thì làm thế nào hả các bác. Mình lại phải thêm một cột trong bảng này để lưu số lượt đọc bài này ư?

Các bác giúp em nhé.

MichaelTuanAnh
22-08-2007, 16:40
Đúng rồi, phải thêm 1 field nữa để lưu số lần đọc rồi order theo cái đó


Em vừa upload xong, chạy tít lắm, thanks các bác đã chỉ giáo nha.

Em có một câu hỏi khác.

Cũng ở cái bảng tbArticles trên của em. Em muốn liệt kê ra 10 bài viết có số lần đọc nhiều nhất thì làm thế nào hả các bác. Mình lại phải thêm một cột trong bảng này để lưu số lượt đọc bài này ư?

Các bác giúp em nhé.

walldavist
22-08-2007, 17:22
Nhưng vấn đề là lưu số lần đọc vào cái field đó như thế nào. Bạn có thể nói rõ cho mình được không.