我運行下面的代碼從字典中隨機項:選擇隨機條目在MySQL中使用WHERE子句問題
SELECT * FROM tbl_dict WHERE 1 ORDER BY RAND() LIMIT 1
這個偉大的工程,但只要我有擴大WHERE子句查詢失敗。我需要的是類似的東西...
SELECT * FROM tbl_dict WHERE 1 and lock='0' ORDER BY RAND() LIMIT 1
任何人都可以指出我哪裏出錯了嗎?我的頭腦轉向花生醬。
謝謝!
我運行下面的代碼從字典中隨機項:選擇隨機條目在MySQL中使用WHERE子句問題
SELECT * FROM tbl_dict WHERE 1 ORDER BY RAND() LIMIT 1
這個偉大的工程,但只要我有擴大WHERE子句查詢失敗。我需要的是類似的東西...
SELECT * FROM tbl_dict WHERE 1 and lock='0' ORDER BY RAND() LIMIT 1
任何人都可以指出我哪裏出錯了嗎?我的頭腦轉向花生醬。
謝謝!
鎖是MySQL的一個reserved word。如果您想將其用作標識符,則必須將其置於反引號(`)或雙引號(以ansi模式)。
您可能也有興趣http://jan.kneschke.de/projects/mysql/order-by-rand。當談到速度時,ORDER BY Rand()在你的情況下可能會或者可能不是太不理想。
沒關係,這對你正在嘗試做的事是錯誤的。
你的表上有一個合成的auto_incremented id列,對不對?
如果是這樣,那麼爲什麼不:
select * from tbl_dict where id
= (select floor(rand() * (max(b.id) + 1)) from tabl_dict b);
當你剛剛做什麼時會發生什麼 SELECT * FROM tbl_dict WHERE lock ='0'ORDER BY RAND()LIMIT 1 – 2009-04-29 14:51:03
它是如何失敗的?你會得到一個錯誤,一個錯誤的結果? – 2009-04-29 14:51:18
嗨,雪橇,當我執行該查詢沒有數據被拉出。數據由PHP提取出來,然後作爲XML發送到Flash文件。由於某種原因,查詢出現依賴於我刪除並且不能擴充的'1':/ – Aaron 2009-04-29 14:53:44