Dlaczego doktryna (1.2) używa WHERE IN
zamiast LIMIT
?Dlaczego doktryna używa GDZIE IN zamiast LIMITU?
ten kod:
Doctrine_Query::create()
->from('Table t')
->limit(10)
->getSqlQuery();
Zwraca coś takiego:
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);
Zamiast tego:
SELECT t.id_table AS t__id_table FROM table AS t LIMIT 10;
Ten behaivor jest taka sama dla każdej wartości LIMIT
. Generuje to bardzo długie zapytania dla wysokich wartości LIMIT
.
Dodatkowe pytanie: w jaki sposób Doctrine wie, jakich identyfikatorów można użyć? (Wysyłając kolejne zapytanie do DB?)
Jakiego zaplecza bazy danych używasz? –
@Matt Gibson: MySQL –
Nieparzysty; Właśnie zrobiłem coś podobnego z Doctrine z Symfony 1.4, które ja _think_ jest w wersji 1.2.3 i używa klauzuli LIMIT dla MySQL, jak można się spodziewać. –