2009-04-29 84 views
0

我運行下面的代碼從字典中隨機項:選擇隨機條目在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 

任何人都可以指出我哪裏出錯了嗎?我的頭腦轉向花生醬。

謝謝!

+0

當你剛剛做什麼時會發生什麼 SELECT * FROM tbl_dict WHERE lock ='0'ORDER BY RAND()LIMIT 1 – 2009-04-29 14:51:03

+2

它是如何失敗的?你會得到一個錯誤,一個錯誤的結果? – 2009-04-29 14:51:18

+0

嗨,雪橇,當我執行該查詢沒有數據被拉出。數據由PHP提取出來,然後作爲XML發送到Flash文件。由於某種原因,查詢出現依賴於我刪除並且不能擴充的'1':/ – Aaron 2009-04-29 14:53:44

回答

0

沒關係,這對你正在嘗試做的事是錯誤的。

你的表上有一個合成的auto_incremented id列,對不對?

如果是這樣,那麼爲什麼不:

select * from tbl_dict where id 
    = (select floor(rand() * (max(b.id) + 1)) from tabl_dict b);