Можно ли выполнить запрос mysql внутри цикла while, используя идентификатор каждой строки, переданной для получения результатов из другой таблицы? ИЛИ есть ли лучший способ сделать это?
Вы должны переформулировать свой запрос в SQL
. Скажем, поместите id
s в таблицу памяти и используйте его в JOIN
:
SELECT *
FROM idtable
JOIN mytable
ON mytable.id = idtable.id
Таким образом, MySQL
сделает петли для вас, но сделает их (обычно) более эффективным способом.
SQL
- язык, предназначенный для работы с наборами.
Итак, если у вас есть набор id
s и таблица (которая является набором кортежей), ваша первая мысль должна быть: «Как применить операции на основе набора к этим наборам, используя SQL
»?
Конечно, можно выполнять несколько простых запросов в цикле, но таким образом вы просто выполняете дополнительную работу, которую разработчики движка SQL
, скорее всего, уже сделали для вас (и обычно делали это более эффективно). .
Вы можете прочитать эту статью в моем блоге: