phpbar.de logo

Mailinglisten-Archive

Re: group by / order by having...
Archiv Mailingliste mysql-de

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

Re: group by / order by having...



> Date sent:      	Wed, 13 Dec 2000 11:00:50 +0100
> From:           	Christian Dassow <c.dassow_(at)_webelefant.de>

> > select titel from filme where titel like '%$teilwort%' order by titel;
> Problem ist: So wird alphabetisch sortiert. Die Sortierung soll aber beginnen
> mit den Datensaetzen, die mit dem Suchwort beginnen! Erst wenn es keine
> Datensaetze mehr mit dem Suchwort am Anfang gibt, soll weiter alphabetisch
> sortiert werden.

Dann muß ich raten:

select titel, (LOCATE('$teilwort',titel)>0) as fit 
from filme 
order by (fit desc ,titel asc);

Selbst wenn dieses ungetestete SQL-Statement nicht 
laufen sollte, hoffe ich, daß dir die Idee weiterhilft:

Wir erzeugen ein Feld "fit" per boolschen Ausdruck, 
daß entweder 0 oder 1 ist. Mit "order by fit desc" 
zeigen wir zuerst alle, wo fit=1 und dann wo fit=0 
ist. Für jede "fit"-Gruppe sortieren wir dann die 
Titel ganz normal, wobei fit=1 ist; fit ist wahr, 
wenn das Teilwort im titel vorhanden ist. 
LOCATE liefert die Position, oder 0. Willst du alles
einschränken, so kannst du "limit $zahl" hinterhängen.


Patrick Bierans / LYNET Kommunikation AG/ pbierans_(at)_lynet.de
---------------------------------------------------------------
Das Internet-Systemhaus fuer Multimedia- und Netzwerkloesungen.
Zentrale Luebeck: Fon +49-451-6131-0, Fax -333
Niederlassung Hamburg:  Fon +49-40-65738-0, Fax -333

---
*** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql 


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive