------------------------------------------------------
sql="select * from tbads ORDER BY RND(數字欄位名稱)";
以上方法就適用於ACCESS及MS SQL作者: gswdkimo 時間: 2011-4-25 16:01
最近由於需要大概研究了一下MYSQL的隨機抽取實現方法。
舉個例子,要從tablename表中隨機提取一條記錄,大家一般的寫法就是 SELECT * FROM tablename ORDER BY RAND() LIMIT 1
但是,後來我查了一下MYSQL的官方手冊,裡面針對RAND()有如下提示:
You can't use a column with RAND() values in an ORDER BY clause, because ORDER BY would evaluate the column multiple times. In MySQL Version 3.23, you can, however, do: SELECT * FROM table_name ORDER BY RAND()
大概意思就是,在ORDER BY從句裡面不能使用RAND()函數,因為這樣會導致數據列被多次掃瞄。但是在MYSQL 3.23版本中,仍然可以通過ORDER BY RAND()來實現隨機。
然後我試了一下可行性,ORDER BY RAND()在我自己的4.0版本上可以執行,但是在公司的3.x(具體忘了)上不能執行,看來好像和官方手冊上有點不同。