Почему доктрина (1.2) использует WHERE IN
вместо LIMIT
?Почему доктрина использует WHERE IN вместо LIMIT?
Этот код:
Doctrine_Query::create()
->from('Table t')
->limit(10)
->getSqlQuery();
Возвращает что-то вроде этого:
SELECT t.id_table AS t__id_table FROM table AS t WHERE t__id_table IN (1,2,3,4,10,12,18,20,21,25);
Вместо этого:
SELECT t.id_table AS t__id_table FROM table AS t LIMIT 10;
Это behaivor же для любого LIMIT
значения. Это генерирует очень длинные запросы для высоких значений LIMIT
.
Бонусный вопрос: Как знает Доктрина, какие идентификаторы использовать? (Отправляя другой запрос в БД ??)
Какую базу данных вы используете? –
@Matt Gibson: MySQL –
Нечетный; Я только что сделал что-то подобное с Doctrine Symfony 1.4, которое я _think_ является версией 1.2.3, и он использует предложение LIMIT для MySQL, как и следовало ожидать. –