Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 针对多个表的SQL查询_Mysql_Sql - Fatal编程技术网

Mysql 针对多个表的SQL查询

Mysql 针对多个表的SQL查询,mysql,sql,Mysql,Sql,我有一张包含数百种泡菜类型的表pickles 表pickles的结构至少为:id、name、likes 从查询开始: SELECT * FROM pickles WHERE likes > 100 LIMIT 10 假设我需要至少10个泡菜在任何时候向用户展示,假设只有4个泡菜被喜欢100次以上。这意味着,尽管有几百个可用的pickle,但只有4个将从此查询中提取 我如何操作此查询以提取多达10个“超过100个喜欢的”泡菜,然后如果没有10个可用泡菜,则用随机泡菜填充其余泡菜?您可

我有一张包含数百种泡菜类型的表
pickles

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

从查询开始:

SELECT * 
FROM pickles 
WHERE likes > 100 
LIMIT 10
假设我需要至少10个泡菜在任何时候向用户展示,假设只有4个泡菜被喜欢100次以上。这意味着,尽管有几百个可用的pickle,但只有4个将从此查询中提取


我如何操作此查询以提取多达10个“超过100个喜欢的”泡菜,然后如果没有10个可用泡菜,则用随机泡菜填充其余泡菜?

您可以选择喜欢数量最多的泡菜:

SELECT *
FROM pickles
ORDER BY likes DESC
LIMIT 10;

如果您总是希望返回10行,则
100
是非常不相关的。

您可以选择喜欢数量最多的泡菜:

SELECT *
FROM pickles
ORDER BY likes DESC
LIMIT 10;

如果您总是希望返回10行,则
100
是非常不相关的。

您可以选择喜欢数量最多的泡菜:

SELECT *
FROM pickles
ORDER BY likes DESC
LIMIT 10;

如果您总是希望返回10行,则
100
是非常不相关的。

您可以选择喜欢数量最多的泡菜:

SELECT *
FROM pickles
ORDER BY likes DESC
LIMIT 10;

如果您总是希望返回10行,
100
则与此无关。

使用“按喜欢排序”并将选择结果按降序排序,这将为您提供喜欢的最高数量列表,然后您可以限制记录

这应该起作用:

     SELECT * FROM pickles ORDER BY likes DESC LIMIT 10

使用order by likes并将选择结果按降序排序,这将为您提供最高喜欢数的列表,然后您可以限制记录

这应该起作用:

     SELECT * FROM pickles ORDER BY likes DESC LIMIT 10

使用order by likes并将选择结果按降序排序,这将为您提供最高喜欢数的列表,然后您可以限制记录

这应该起作用:

     SELECT * FROM pickles ORDER BY likes DESC LIMIT 10

使用order by likes并将选择结果按降序排序,这将为您提供最高喜欢数的列表,然后您可以限制记录

这应该起作用:

     SELECT * FROM pickles ORDER BY likes DESC LIMIT 10
试试这个:

    SELECT *
FROM pickles
WHERE likes > 100 OR id IN(SELECT id FROM pickles WHERE id > 1)
ORDER BY likes DESC
LIMIT 10;
试试这个:

    SELECT *
FROM pickles
WHERE likes > 100 OR id IN(SELECT id FROM pickles WHERE id > 1)
ORDER BY likes DESC
LIMIT 10;
试试这个:

    SELECT *
FROM pickles
WHERE likes > 100 OR id IN(SELECT id FROM pickles WHERE id > 1)
ORDER BY likes DESC
LIMIT 10;
试试这个:

    SELECT *
FROM pickles
WHERE likes > 100 OR id IN(SELECT id FROM pickles WHERE id > 1)
ORDER BY likes DESC
LIMIT 10;

从泡菜订单中选择*按照likes描述限制10从泡菜订单中选择*按照likes描述限制10从泡菜订单中选择*按照likes描述限制10从泡菜订单中选择*按照likes描述限制10这很有效,但我简化了(可能太多了)我的问题。虽然你写的东西很管用,但我的真实表没有“喜欢”部分,而是通过搜索其他表动态计算“喜欢”,所以想法是,一旦我有了最喜欢的pickle,我需要一种方法来用任意pickle填充其余部分afterwards@Parad0x13-你可以
UNION
Gordon的结果随机选择泡菜查询,然后取前10名;当然,要确保不将结果同时包含在两个集合中。@paradox13如果您有不同的问题,请提出不同的问题,或者相应地修改上面的问题。这是可行的,但我简化了(可能太多了)我的问题。虽然你写的东西很管用,但我的真实表没有“喜欢”部分,而是通过搜索其他表动态计算“喜欢”,所以想法是,一旦我有了最喜欢的pickle,我需要一种方法来用任意pickle填充其余部分afterwards@Parad0x13-你可以
UNION
Gordon的结果随机选择泡菜查询,然后取前10名;当然,要确保不将结果同时包含在两个集合中。@paradox13如果您有不同的问题,请提出不同的问题,或者相应地修改上面的问题。这是可行的,但我简化了(可能太多了)我的问题。虽然你写的东西很管用,但我的真实表没有“喜欢”部分,而是通过搜索其他表动态计算“喜欢”,所以想法是,一旦我有了最喜欢的pickle,我需要一种方法来用任意pickle填充其余部分afterwards@Parad0x13-你可以
UNION
Gordon的结果随机选择泡菜查询,然后取前10名;当然,要确保不将结果同时包含在两个集合中。@paradox13如果您有不同的问题,请提出不同的问题,或者相应地修改上面的问题。这是可行的,但我简化了(可能太多了)我的问题。虽然你写的东西很管用,但我的真实表没有“喜欢”部分,而是通过搜索其他表动态计算“喜欢”,所以想法是,一旦我有了最喜欢的pickle,我需要一种方法来用任意pickle填充其余部分afterwards@Parad0x13-你可以
UNION
Gordon的结果随机选择泡菜查询,然后取前10名;当然,要确保不在两个集合中都包含结果。@paradox13如果您有不同的问题,请提出不同的问题,或者相应地修改上述问题。