我正在尝试创建一个文章网站,但我想规范化我当前的数据库。我有四个表,每个表都标记一个类别,除了一个。这四个表是:娱乐,生活方式,科学和文章。文章是娱乐,生活方式和科学的所有条目的组合。我想删除娱乐,生活方式和科学,只需离开文章表,从而节省空间并提高性能。我面临的唯一问题是查询通过获取表的最后一个ID来生成随机文章,然后获得一个介于6和最大ID之间的随机数。
我的所有表格都具有以下结构:id
(唯一),category
(这是文章的类型,即娱乐),title
(文章标题),{ {1}}(文章的图片网址),image
(文章的网址),link
(本文的观看次数)和Counter
(文章的日期)出版)。这是我试图根据我的规范化数据库更新的查询。
dateStamp
我应该如何更改/更新此查询以使其能够从Articles表中获取随机娱乐文章?我对任何可以改善查询性能的更改持开放态度。
答案 0 :(得分:0)
不是选择随机结束ID,而是随机化所有行并从中选择6。
SELECT *
FROM Articles
WHERE category = 'Entertainment'
ORDER BY RAND()
LIMIT 6
如果您需要避免ORDER BY RAND()
,因为它的效果不佳,请参阅How can i optimize MySQL's ORDER BY RAND() function?