利用 sql command 可以查詢指定的資料, 有時因為功能上的需要, 希望能在 web 頁面上呈現價格最低, 或是到訪最高的資料, 這種取出固定的資料順序, 往往少了一些活發性.
我們可以利用資料庫的函數特性, 讓查詢出來的結果能有不同的順序, 可以增加訪客訪問的興趣. 不過導入又十分容易的方法囉.
MS SQL Server
select * from mydata order by NEWID()
其中 NEWID() 函數, 是取出 GUID, 不過我們是利用這個函數來進行排序的打散. 如此一來, 每次查詢, 就會有不同的隨機效果
另外是 MySQL
select * from mydata order by RAND()
rand() 函數就是傳回0~1之間的亂數, 所以也是利用一樣的手法, 將 MySQL 的查詢結果回傳後, 就其實也是和上則類似的方式來達成!
雖然 MS SQL Server 也有 rand() 函數, 但是會發生使用
select * from mydata order by rand()
時, 並不會發生打散的行為, 為什麼會這樣呢? 請自行試試:
select rand(), * from mydata order by rand()
就會明白囉.
之後我會再寫一個隨機文章的plugin哦, 方便將到訪比較低的頁面也有曝光的機會.
[2006/12/15 15:08]
繼續閱讀:
http://www.petefreitag.com/item/466.cfm
http://blog.xuite.net/jameschih/java/8308864
http://blog.blueshop.com.tw/uni2tw/archive/2006/11/09/44738.aspx