請有人幫我解決這個問題的正確語法。帶條件的mysql rand
我有,table1
:
id, int
on, tinyint - this can be 0 or 1
name, varchar(2000)
從這個我想獲得具有on
設置爲1
我應該使用什麼查詢10個隨機id
/name
?
請有人幫我解決這個問題的正確語法。帶條件的mysql rand
我有,table1
:
id, int
on, tinyint - this can be 0 or 1
name, varchar(2000)
從這個我想獲得具有on
設置爲1
我應該使用什麼查詢10個隨機id
/name
?
SELECT id, name FROM table1 WHERE `on` = 1 ORDER BY RAND() LIMIT 0,10;
啊!我錯過了極限,而且mysql也不喜歡名爲'on'的列。謝謝! – David19801 2011-04-12 09:41:47
@MRW:在WHERE = 1上使用反引號,因爲on是關鍵字 – Marco 2011-04-12 09:50:43
什麼是反引號?並且是他們在任何地方的不良關鍵工作清單? – David19801 2011-04-12 09:56:28
試試這個:
SELECT id,name FROM table1 WHERE `on`=1 ORDER BY RAND() LIMIT 0,10
你忘記了結果數量的限制。 – 2011-04-12 09:41:48
謝謝,編輯:) – 2011-04-12 09:42:57
SELECT `id`, `name` FROM `table1`
WHERE `on` = 1
ORDER BY RAND()
LIMIT 0,10
使用反引號分隔字段名稱。在這種情況下,您實際上的至WHERE
條件,因爲「ON」是關鍵字。
錯誤是由「上」不是一個可以接受的列名稱的MySQL我覺得...(驚訝沒有人發現了!) – David19801 2011-04-12 09:45:37
沒關係。你應該使用反引號來分隔你的字段名稱。既然你沒有向我們展示你到目前爲止所做的嘗試,我們無法猜測你沒有這樣做。 – 2011-04-12 09:48:04