mysql 搜索問題

2009-05-20 1:55 am
最近在寫一個程式,關於隨機抽出最多人推薦的文章

程序如下:
在一個資料表裹,搜尋推薦數目最大的50條文章資料,而且在50條文章資料裹面隨機抽出一項作為顯示之用

假設該資料表名為art,推薦數目欄位名稱為recom,請問其sql式是什麼?

(請以伺服器負荷最小為原則摘寫sql式)
更新1:

已經嘗試,但SQL語句有錯誤

更新2:

sorry..沒看清楚就說錯誤了,不好意思,你的sql語句是work的~ 謝謝教導@@

回答 (1)

2009-05-20 3:51 am
✔ 最佳答案
您可用 SELECT ... ORDER BY ... LIMIT ... 的 query : 當中 LIMIT 有 offset 的功能,可利用 RAND() 來計算出想要的 offset 。
只要資料表中的 recom 有加 index , query 的速度差極有限。
不過,若當中有用 WHERE (如要考慮文章的發表時間在某範圍)的話,速度或會大幅減慢。
試試:
SELECT * FROM `art` ORDER BY `recom` DESC LIMIT FLOOR(RAND() * 50) , 1



收錄日期: 2021-04-25 00:01:32
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20090519000051KK01059

檢視 Wayback Machine 備份