phpbar.de logo

Mailinglisten-Archive

Re: Wer kennt den Unterschied zwischen:
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Wer kennt den Unterschied zwischen:



Cyrill Schumacher schrieb am Mittwoch, den 22. September 1999:
> Leider problem:
> 1. select rma,kunde,eingang,seriennr from rma order by rma desc limit 5,3
> 2. select rma,kunde,eingang,seriennr from rma limit 5,3 order by rma desc
> ich bräuchte Nr. 2 aber leider geht das nicht ....
> da Nr 1. ja erst die tabelle umdreht und dann limit ausführt, anstatt
> erst zu limitieren und dann die sache umdrehen !

Aha! :)

Was Du unter 2. willst, geht so nicht, denn SQL-Anfragen haben immer
diesen festen Aufbau:

  SELECT ...
  FROM   ...
  WHERE  ...
  GROUP BY ...
  HAVING ...
  ORDER BY ...
  LIMIT ...

  1. Der FROM-Teil bestimmt, aus welchen Tabellen die Datensätze
     stammen und wie sie kombiniert werden
  2. Der WHERE-Teil wählt einen Teil davon aus
  3. Mit GROUP BY werden die Datensätze evtl. zu Gruppen zusammen-
     gefaßt und pro Gruppe wird eine Datensatz erzeugt
  4. Der SELECT-Teil bestimmt, welche Felder und Berechnungen
     in den Ergebnisdatensätzen stehen
  5. Mit HAVING kann man nun nochmal aus diesen Ergebnisdatensätzen
     auswählen (also nochmal welche weglassen).
  6. Die Ergebnisdatensätze, die übriggeblieben sind, werden gemäß
     ORDER BY sortiert und man erhält das Endergebnis.
  6. Bei MySQL noch:  per LIMIT kann man noch einen Teil des
     Endergebnissen auswählen.

LIMIT ist immer der letzte Schritt!

Für Dein Problem (Endergebnis nochmal sortieren) gäb's zwei
prinzipielle Lösungen:

- entweder sortierst Du auf Deiner Anwendungsseite nach
  (ist vielleicht das einfachste?)

- oder Du rechnest das LIMIT um!

  Wenn Du zusammen z.B. 100 Datensätze bekommen würdest,
  dann liefern Dir die beiden Anfrage
     ... ORDER BY rma ASC  LIMIT 10,5
  und
     ... ORDER BY rmd DESC LIMIT 85,5
  das gleiche Ergebnis, nur eben gegenläufig sortiert.

  Diese Gesamtanzahl müßtes Du zuvor eventuell per
     SELECT COUNT(*) FROM ...
  ermitteln.

Ich hoffe, das trifft in etwa, was Du brauchst ...?


> es gibt auch blonde männer .....

<URL: http://www.brueckenbauer.ch/INHALT/9844/44trend.htm > :)

Ciao,
  Martin
-- 
Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://ramsch.home.pages.de/ >
PGP: 0xE8EF4F75, 52 44 5E F3 B0 B1 38 26  E4 EC 80 58 7B 31 3A D7

"Computers are useless. They can only give you answers." -- Pablo Picaso

---
*** Abmelden von dieser Mailingliste funktioniert per E-Mail
*** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive