我想顯示最新的三個新項目中的一個選擇最後三個項目之一。我想出了以下查詢:隨機從一個MySQL表
SELECT
*
FROM
News
WHERE
Id IN (
SELECT
Id
FROM
News
WHERE
Display=1
ORDER BY
Published DESC
LIMIT 3
)
ORDER BY
RAND()
LIMIT 1
我預計,這將是可怕的效率低下,而且會工作。事實上,它並不:
錯誤查詢(1235):該版本的MySQL還不支持 'LIMIT & IN/ALL/ANY/SOME子查詢'
所以我實際的問題是,有什麼方法可以從表中最後三項中隨機選擇一項?
mysql> SHOW VARIABLES LIKE "%version%";
+-------------------------+-------------------------+
| Variable_name | Value |
+-------------------------+-------------------------+
| innodb_version | 5.6.28 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.6.28-0ubuntu0.15.10.1 |
| version_comment | (Ubuntu) |
| version_compile_machine | x86_64 |
| version_compile_os | debian-linux-gnu |
+-------------------------+-------------------------+
7 rows in set (0.00 sec)
哪個版本的MySQL是** **你使用? – ManseUK
[從最後20條記錄中返回隨機5條記錄]的可能重複(http://stackoverflow.com/questions/6945784/return-random-5-records-from-last-20-records) – ajreal