【发布时间】:2016-07-21 23:22:15
【问题描述】:
我试图准确地显示 6 个随机“娱乐”条目,但在我当前的查询中,它得到一个介于 1 和 6 之间的随机数,并显示该条目数。如何更新此查询以使其准确显示我的文章表中的 6 个随机娱乐条目?另外,我不想做 ORDER BY RAND() 因为我的桌子加班会变大。这是我当前的查询:
SELECT
r1.*
FROM
Articles AS r1
INNER JOIN (SELECT(RAND() * (SELECT MAX(id) FROM Articles)) AS id) AS r2
WHERE
r1.id >= r2.id
AND r1.category = 'entertainment'
LIMIT 6;
表结构:
table Articles
- id (int)
- category (varchar)
- title (varchar)
- image (varchar)
- link (varchar)
- Counter (int)
- dateStamp (datetime)
【问题讨论】:
-
您的
id列中是否存在空白? -
@PaulSpiegel 是的,例如 id:1 归类为生活方式,id:2 归类为娱乐,id:3 归类为科学,等等。当查询收集所有娱乐类别时,所有这些 id 都是数字,它们之间有间隔。
标签: php mysql database-schema