Witam. Mam taką tabelę
id | data |
---|---|
4444 | firstdata |
4444 | second |
4444 | costamcostam |
3333 | wsiump |
3333 | tralala |
4444 | firstdata |
No i sobie ją pobieram.
SELECT * FROM TABLE.
Następnie w PHP przetwarzam sobie tę dane w PHP - grupuję dane poprzez ID.
Lecz problem następuje gdy chcę zrobić pager na stronię, czyli wyświetlać od 0 do 30 rekordów.
Czyli tak jakby użyć zapytania
SELECT * FROM table WHERE ID IN ( SELECT id FROM table GROUP BY id LIMIT 0, 30);
I myślę że w moim przypadku to będzie nie optymalne - moje zapytanie jest zbyt szeczgółowe ( http://4programmers.net/Pastebin/1373 ), to tak jaby 2 te same zapytanie wykonać - myślę że MySQL nie wyrobi.
Dlatego myślę o alternatywie.
Myślę by zrobić
CREATE VIEW tmpview AS SELECT * FROM TABLE;
Następnie by pobrać dane
SELECT * FROM tmpview WHERE id IN (SELECT id FROM tmpview GROUP BY id LIMIT 0,30)
Czy to jest dobre i optymalne rozwiązanie? Czy create view jest dłuższe od podwójnego zapytania o ten sam szczegół?