PHP MySQL - это самый простой способ? - PullRequest
1 голос
/ 28 июля 2011

Фрагмент кода предназначен для возврата минимального и максимального идентификатора из каждого раунда в этой таблице

Ответы [ 3 ]

2 голосов
/ 28 июля 2011

Было бы эффективнее выполнить один запрос и использовать предложение WHERE round IN (....):

$round_clause = implode(',', $rounds);

$query = "SELECT round, MIN(id), MAX(id) FROM $tablename WHERE round IN ($round_clause) GROUP BY round";

Как правило, выполнение одного запроса, который возвращает «большое» количество строк,будет более эффективным, чем выполнение серии небольших / единичных запросов, которые возвращают только несколько или одну строку за раз.Вы сканируете индексы только один раз, вам нужно получить данные только один раз.

2 голосов
/ 28 июля 2011

Как насчет этого в одном запросе:

SELECT MIN(id), MAX(id) FROM $tablename GROUP BY round
1 голос
/ 28 июля 2011

использование group by

использование запроса в foreach - худшая практика, которую я когда-либо видел

SELECT Min(id), Max(id) FROM $tablename GROUP BY round
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...