我有一个表pickles
,有几百个泡菜类型
表pickles
的结构至少为:id, name, likes
从查询开始:
SELECT *
FROM pickles
WHERE likes > 100
LIMIT 10
假设我需要至少10个泡菜在任何时候向用户显示,并且假设只有4个泡菜被超过100次。这意味着虽然有几百个可用的泡菜,但这个查询中只会有4个。
如何操作此查询以在100个喜欢的泡菜上拉10个,然后如果没有10个可用,那么用随机泡菜填充其余部分?
答案 0 :(得分:2)
你可以选择最喜欢的咸菜:
SELECT *
FROM pickles
ORDER BY likes DESC
LIMIT 10;
如果您总是想要返回10行,那么100
就无关紧要了。
答案 1 :(得分:1)
按喜欢使用顺序并将选择结果按降序排序,这将为您提供最多喜欢的列表,然后您可以限制记录。
这应该有效:
SELECT * FROM pickles ORDER BY likes DESC LIMIT 10
答案 2 :(得分:0)
试试这个:
SELECT *
FROM pickles
WHERE likes > 100 OR id IN(SELECT id FROM pickles WHERE id > 1)
ORDER BY likes DESC
LIMIT 10;