php – MySql按分数desc选择 – 当有多个分数总计… ODD

好吧,所以我有一张桌子上摆满了客户“推荐书”.有些标记为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的新套装,我需要设计一种新方法来将它们拉出来并将它们混合在一起.

到目前为止,我已经删除了分数> 8子句,并在我的脚本中添加一个SWITCH限制子句,以删除< 8 for source 1,< 3为source2. 这些现在按DESC顺序显示,但我希望整个批次是随机的,或者至少在结果中将source1和source2混合在一起. 我更愿意在查询中完成所有这些…
有任何想法吗?

解决方法:

您只需在工作查询添加一个简单的OR条件:

SELECT * from testimonials WHERE score > 8 OR (source = 'source2' AND score > 3) ORDER BY rand()

这选择分数> 8为source1和>您的SWITCH说明建议将3作为source2.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...