Недавно я пытался сделать проект *, который заставил меня задать этот вопрос. Хотя с тех пор я нашел альтернативное решение, мне все еще любопытно, что то, что я представляю, возможно, возможно.
По сути, мне интересно, если в любом случае выполнить запрос MySQL на результат запроса MySQL в php. Например:
$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
s, но это заставляет меня без необходимости запрашивать базу данных и мешает мне писать более объектно ориентированный код (потому что я не могу передать результат запросил, но, скорее, должен требовать базу данных в каждой функции …)
Любые советы, фрагменты кода, рамки или штрихи оцениваются.
* BTW, мой проект должен был запрашивать большую базу данных людей для людей, родившихся в определенных возрастных группах, а затем запрашивать эти возрастные группы для разных демографических данных.
Нет, написать пользовательскую функцию для запроса базы данных не стоит объектно-ориентированной (и изменчивости), это дало бы мне
Вы можете сделать вложенный запрос в том же SQL-запросе и оставить PHP из него:
'SELECT * FROM (SELECT * FROM foo WHERE bar="something") AS q1 WHERE q1.bar2 = "something else"'
На этот вопрос уже был дан ответ. Однако последующее объяснение поможет кому-то, кому может быть интересно узнать подробности об этом.
Что такое вложенный запрос / подзапрос:
Подзапросы также известны как вложенные запросы. Подзапрос – это оператор SELECT в другом выражении. MySQL поддерживает все стандарты SQL и дополнительно предоставляет определенные функции MySQL.
Почему я должен использовать подзапрос:
Возврат подзапроса:
Подзапрос может возвращать одно значение, одну строку, один столбец или таблицу. Они называются скалярными, подзапросами столбцов, строк и таблиц.
Ссылка: http://dev.mysql.com/doc/refman/5.7/ru/subqueries.html http://www.w3resource.com/sql/subqueries/nested-subqueries.php