Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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查询在子查询中添加限制_Mysql_Subquery - Fatal编程技术网

MySQL查询在子查询中添加限制

MySQL查询在子查询中添加限制,mysql,subquery,Mysql,Subquery,以下是我的表测试值: Price ---------- 300 600 900 1000 1800 2000 我想查询这样,当我搜索300时,我应该得到4条记录3006009001000 如果我搜索900,我可以得到60090010001800。 i、 e.两项记录900 以下是我尝试的查询: SELECT * FROM table h where CONDITIONS and (price in (select price from table where price <=900

以下是我的表测试值:

Price
----------
300
600
900
1000
1800
2000
我想查询这样,当我搜索300时,我应该得到4条记录3006009001000

如果我搜索900,我可以得到60090010001800。 i、 e.两项记录900

以下是我尝试的查询:

SELECT * FROM table h where CONDITIONS 
 and  (price in (select price from table where price <=900) // I want to add   LIMIT 2 in this subquery
 or price in (select price from table where price >900)//LIMIT 2
)
order by FIELD(price ,900) DESC limit 5;

我搜索了很多关于堆栈溢出的内容,但都没有找到。请提供帮助。

使用union,因为此mysql版本不接受子查询中的限制


从price 900 limit 2在where-in/EXSISTS/ANY/SOME子查询中MySQL不支持limit的表中选择*

(SELECT * /* this should be a columnlist */
 FROM tablename
 WHERE price < 900
 ORDER BY price LIMIT 2)

 UNION

(SELECT * /* this should be a columnlist */
 FROM tablename
 WHERE price >= 900
 ORDER BY price LIMIT 2)
每个select的括号都很重要


你可以试试下面的

select * from ((select h.* from table_name h where amount <=300 order by amount desc limit 2)
union
(select h.* from table_name h where amount >300 order by amount limit 2)) 
derived_table order by FIELD(amount,300) desc;

是的,我知道。除了UNION之外,没有其他解决方法吗?在这种情况下,order by不起作用。我发现错误UNION和order by的用法不正确,只是查看了MySQL文档,有一个完全相同的示例,但可能是SELECT*导致的。我可以使用join吗?我不太擅长加入,如果你能帮忙的话:是的,你可以,但为什么你要加入。它的效率不亚于工会。我在我的答案中添加了一个小提琴的链接,没有错误请编辑你的答案并在其中包含一些解释。只有代码的答案有时足够好,但代码+解释的答案总是更好。我可以有更多关于这个问题的说明吗??