我有一张表,我尝试检索一定数量的随机条目,并且我想将某个类别的某个最大条目数放在顶部,然后是另一个类别的一定数量。
如果第一个类别中没有条目,则将其允许的条目数添加到 2sd 类别的条目数中。
例如,我的表有 3 个类别(类别:“完整”、“部分”、“空”)。我想总共显示 12 个条目。
对于“完整”类别,我想显示 8。然后显示 3 个部分,最后 1 个为空。
如果少于 8 个完整,假设有 5 个,那么它将显示 5 个完整、6 个部分和 1 个空。(缺少 3 个完整的,所以 3 个基本部分 + 3 个额外的 1 = 6)。
这样做的查询是什么?
这是我实际有的查询:
SELECT *
FROM items
ORDER BY category='complete' DESC, category='partial' DESC, category DESC, RAND() ASC
LIMIT 12
上述查询的问题是它完成了 12 次,这并不是我想要的。