Ilja: Danke Allen!

Beitrag lesen

yo,

select count(*) form table where $whereKram UNION ALL select * from table where $whereKram limit 0,50

das geht schon mal gar nicht und wird mit grosser wahrscheinlichkeit einen syntax-fehler hervorrufen. bei einem UNION muss die anzahl der spalten gleich sein. zum anderen macht eine ausgabe mit dem joker * im produktiven einsatz nur selten sinn. besser ist es meistens explizit die gewünschten spalten anzugeben.

SELECT COUNT(*) Spaltenalias1, NULL Spaltenalias2, NULL Spaltenalias3, 0 Spaltenalias4
FROM table
WHERE .....
UNION ALL
SELECT spalte1, spalte2, spalte3, 1
FROM table
WHERE....
ORDER BY 4

Dann wäre ja die DB 2x mit den where Klauseln beschäftig was ich ja vermeiden will oder habe ich da was falsch verstanden?

du musst zwei dinge unterscheiden, zum einen hast du die aufrufe von php an den datenbankserver. mit UNION ALL hast du davon nur einen und auch nur ein resultset, was wieder zurück geliefert werden muss. mit FOUND_ROWS() hast du derlei zwei aurufe und rückgaben.

und was das dbms betrifft, so kann es selbst aus nur einer where klausel intern mehrere abfragen daraus machen.

Ilja