我正在使用一个简单的 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。
最佳答案
添加一个具有随机值的列并对其进行二次排序怎么样?
SELECT product, clicks, RAND() AS rand
FROM suggestions
WHERE source = :source_item_id
ORDER BY clicks, rand
DESC
LIMIT 7
关于MySQL ORDER BY > 如果值相等则交换结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12126638/