针对多个表的SQL查询

时间:2015-02-18 14:44:53

标签: mysql sql

我有一个表pickles,有几百个泡菜类型

pickles的结构至少为:id, name, likes

从查询开始:

SELECT * 
FROM pickles 
WHERE likes > 100 
LIMIT 10

假设我需要至少10个泡菜在任何时候向用户显示,并且假设只有4个泡菜被超过100次。这意味着虽然有几百个可用的泡菜,但这个查询中只会有4个。

如何操作此查询以在100个喜欢的泡菜上拉10个,然后如果没有10个可用,那么用随机泡菜填充其余部分?

3 个答案:

答案 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;