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

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

Я сортирую, хотите сделать:

$rs1 = do_query( "SELECT * FROM animals WHERE type = 'fish'" );
$rs2 = do_query( "SELECT * FROM rs1 WHERE name = 'trout'" );
8
задан eaolson 9 May 2010 в 17:00
поделиться

5 ответов

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

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

7
ответ дан 5 December 2019 в 15:20
поделиться

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

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

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

0
ответ дан 5 December 2019 в 15:20
поделиться

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

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

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

1
ответ дан 5 December 2019 в 15:20
поделиться

Возможно, вы захотите сделать это, не трогая db:

while($t = mysql_fetch_array($rs1)){
    if($t[name] == 'trout'){ 
        echo 'This is the one we\'re looking for!'; 
        break;
    }
}
2
ответ дан 5 December 2019 в 15:20
поделиться

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

select morestuff from (select stuff from table where a = b ) where c = d;
1
ответ дан 5 December 2019 в 15:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: