最近我试图做一个项目,这让我问了这个问题。尽管从那以后,我找到了另一种解决方案,但我仍然很好奇,我设想做的事情在任何方面都是可能的。
从本质上讲,我想知道是否存在对php.中的查询结果执行MySQL查询的问题,例如:
$result = mysql_query("SELECT * FROM foo WHERE bar=".$barValue);然后,能够在$result上执行多个查询。
$newResult = mysql_query("SELECT * FROM $result WHERE otherBar=".$barValue);或
$otherNewResult = mysql_query("SELECT * FROM $result WHERE otherOtherBar=".$barValue." ORDER BY foobar ASC");等等等等..。
我意识到我可以用新的WHERE语句和ORDER BY添加原始查询,但这导致我不必要地查询数据库,并且它阻止了我编写更多面向对象的代码(因为我不能传递查询结果,而是必须在每个函数中请求数据库……)
任何建议、代码片段、框架或杂乱无章的内容都值得赞赏。
*BTW,我的项目是查询出生在某些年龄组的人的大型数据库,然后查询这些年龄组的不同人口。
编辑
不,编写一个自定义函数来查询数据库是不值得的,它会给我带来面向对象(和可修改性)的价值。
发布于 2011-08-08 03:17:16
您可以在同一个SQL查询中执行嵌套查询,并将PHP排除在外:
'SELECT * FROM (SELECT * FROM foo WHERE bar="something") AS q1 WHERE q1.bar2 = "something else"'发布于 2016-11-23 09:03:18
这个问题已经回答了。然而,下面的解释将帮助那些可能有兴趣了解它的细节的人。
什么是嵌套查询/子查询:
子查询也称为嵌套查询。子查询是另一个语句中的SELECT语句。MySQL支持所有的SQL标准,另外还提供了特定于MySQL的特性。
为什么我要使用Subquery:
statement
。
子查询返回的内容:
子查询可以返回单个值、一行、单个列或表。这些查询称为标量、列、行和表子查询。
参考资料:http://dev.mysql.com/doc/refman/5.7/en/subqueries.html http://www.w3resource.com/sql/subqueries/nested-subqueries.php
https://stackoverflow.com/questions/6977408
复制相似问题