1

我正在使用一个简单的 MySQL 语句来查询我的数据库以获取按点击排序的产品建议:

SELECT * FROM suggestions WHERE source = :source_item_id ORDER BY clicks DESC LIMIT 7

这一切都按预期工作。但是,如果点击次数相同,有没有办法告诉 MySQL 随机吐出?

例子:

Product  Clicks
1        2
2        2
3        3

如果查询,则顺序为 3,2,1,如果点击量不变,则始终为该顺序。如何随机化具有 w 点击次数的产品 1 和 2?时不时地我想交换结果,即让它成为 3、1、2,也许下次是 3、2、1。

4

2 回答 2

3

如何添加具有随机值的列并对其进行二次排序?

SELECT product, clicks, RAND() AS rand 
FROM suggestions 
WHERE source = :source_item_id 
ORDER BY clicks, rand 
DESC 
LIMIT 7
于 2012-08-26T00:18:35.863 回答
0

为什么不...

SELECT product, clicks
FROM suggestions 
WHERE source = :source_item_id 
ORDER BY clicks DESC, RAND()
LIMIT 7

...?

于 2015-09-24T13:30:08.573 回答