Может ли php запрашивать результаты из предыдущего запроса?

На некоторых языках (ColdFusion приходит на ум) вы можете запускать запрос в результирующем наборе из предыдущего запроса. Можно ли сделать что-то подобное в php (с MySQL как с базой данных)?

Я вроде хочу сделать:

$rs1 = do_query( "SELECT * FROM animals WHERE type = 'fish'" ); $rs2 = do_query( "SELECT * FROM rs1 WHERE name = 'trout'" ); 

Для PHP нет такой функции MySQL, но для нее есть более продвинутая замена .

Изменить: для тех из вас, кто не знает, что такое запрос запросов, это именно это, и есть цель, которую некоторые люди делают так. Использование оператора AND – это **** НЕ **** то же самое! Если мне нужны результаты, где username = 'animuson' для одной части моего скрипта, а затем хотите получить все результаты из этого запроса, где status = '1', для меня не логично запускать другой запрос с помощью оператора AND, это гораздо логичнее перебирать предыдущие результаты в PHP. Перестаньте останавливать вещи, не читая комментариев о том, почему они не были поддержаны в первую очередь, это просто лениво. Если вы не знаете, о чем говорят, вы не должны быть первыми или ниспровергать в первую очередь.

Ну, вы можете сделать это, не касаясь db:

 while($t = mysql_fetch_array($rs1)){ if($t[name] == 'trout'){ echo 'This is the one we\'re looking for!'; break; } } 

В PHP это было бы ужасно неэффективно. Вам нужно будет пройти через каждую строку и проверить, что ее name было trout . Однако есть ли какая-то причина, по которой вы не можете

 SELECT * FROM `animals` WHERE `type` = 'fish' AND `name` = 'trout' 

в SQL? Это было бы намного, намного быстрее.

Вы также можете сделать что-то вроде

 select morestuff from (select stuff from table where a = b ) where c = d; 

Использовать ключевое слово AND?

 "SELECT * FROM animals WHERE type = 'fish' and name='trout'" 

Кроме того, вы можете использовать LINQ для php http://phplinq.codeplex.com/