在某些语言中(想到ColdFusion),您可以对先前查询的结果集运行查询。是否有可能在php(用MySQL作为数据库)中做类似的事情?
我有点想做:
$rs1 = do_query( "SELECT * FROM animals WHERE type = 'fish'" );
$rs2 = do_query( "SELECT * FROM rs1 WHERE name = 'trout'" );
答案 0 :(得分:6)
对于PHP没有这样的MySQL函数,但是有更高级的substitute。
编辑:对于那些不知道查询查询是什么的人来说,就是这样,有一个人就是这样做的目的。使用AND运算符是**** NOT ****同样的事情!如果我想在我的脚本的一部分中使用username ='animuson'的结果然后想要那个状态='1'的查询中的所有结果,那么使用AND运算符运行另一个查询是不合逻辑的,它是在PHP中循环以前的结果更合乎逻辑。在没有阅读关于为什么他们首先没有被投票的评论的情况下停止提升事情,这只是懒惰。如果你不知道所谈论的是什么,你不应该首先进行投票或低调投票。
答案 1 :(得分:2)
好吧,您可能希望在不触及数据库的情况下执行此操作:
while($t = mysql_fetch_array($rs1)){
if($t[name] == 'trout'){
echo 'This is the one we\'re looking for!';
break;
}
}
答案 2 :(得分:1)
在PHP中,它会非常低效。您必须遍历每一行并检查其name
是否为trout
。但是,你有什么理由不能做到
SELECT * FROM `animals` WHERE `type` = 'fish' AND `name` = 'trout'
在SQL中?它会快得多。
答案 3 :(得分:1)
您也可以执行类似
的操作select morestuff from (select stuff from table where a = b ) where c = d;
答案 4 :(得分:0)
使用AND关键字?
"SELECT * FROM animals WHERE type = 'fish' and name='trout'"
此外,您可以使用LINQ for php http://phplinq.codeplex.com/