我正在尋找一種方式,MySQL表隨機抽樣,並閱讀這篇文章 - http://jan.kneschke.de/projects/mysql/order-by-rand/如何從mSQL的表隨機樣本行沒有ROWID
然而,這並沒有對我的情況,因爲工作mysql中的許多表沒有「rowid」/ autoincrement列。在這種情況下,我還可以隨機採樣行嗎?
這裏是表結構:
'CREATE TABLE `table_name` (
`col1` date DEFAULT NULL,
`col2` bigint(20) DEFAULT NULL,
`col3` varchar(255) DEFAULT NULL,
`col4` varchar(64) DEFAULT NULL,
`col5` varchar(64) DEFAULT NULL,
`col6` bigint(20) DEFAULT NULL,
`col7` bigint(20) DEFAULT NULL,
`col8` varchar(255) DEFAULT NULL,
`col9` decimal(16,5) DEFAULT NULL,
`col10` bigint(20) DEFAULT NULL,
`col11` varchar(64) DEFAULT NULL,
`col12` bigint(20) DEFAULT NULL,
`col13` bigint(20) DEFAULT NULL,
`col14` bigint(20) DEFAULT NULL,
`col15` bigint(20) DEFAULT NULL
) ENGINE=BRIGHTHOUSE DEFAULT CHARSET=utf8'
根據select語句中的「隨機」生成的額外列進行選擇,例如SELECT TOP 50 * FROM myTable WHERE rand()%5 = 1 –
我真的在看那篇文章,但我認爲其中的一個假設是表中有一個唯一的,索引的主鍵,我不知道有。當我通過rand()limit 10從表順序中選擇column1時,我得到表中該列的前10個條目。 – md1630
@RogerWillcocks - 聽起來像一個好主意,但我不確定如何在查詢中生成額外的列,那麼rand()%5 = 1又做了什麼? – md1630