Mailinglisten-Archive |
> 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
php::bar PHP Wiki - Listenarchive