好的,所以我有一张表格,上面写满了客户“推荐”。有些被标记为满分 10,有些被标记为满分 5。(它们来自不同的来源)
我的表有以下字段:
id (int 4 ) AI Pri Index
headline varchar 255
content text
source varchar 55
score double
所以我的问题是:
SELECT * from testimonials WHERE score > 8 ORDER BY rand()
这非常适合我的主要评价集(满分 10 分),但现在我有一套新的评价(满分 5 分),我需要设计一种新方法来将它们也提取出来并将它们混合在一起。
到目前为止,我已经删除了 score > 8 子句,并在我的脚本中添加了一个 SWITCH limit 子句以删除源 1 的 <8 和源 2 的 < 3。
这些现在按 DESC 顺序显示,但我希望所有批处理都是随机的,或者至少 source1 和 source2 在结果中全部混合在一起。
我更愿意在查询中完成所有这些... 有什么想法吗?
最佳答案
添加一个带有最高评分值的列 - 在下面称为 max_score。因此,在您的情况下,它是 5 或 10。然后使用百分比进行归一化:
SELECT * from testimonials WHERE (score/max_score) > 0.8 ORDER BY rand()
简单。
关于php - MySql select by score desc - 当有多个总分时....奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45970871/