Mailinglisten-Archive |
>select titel, (LOCATE('$teilwort',titel)>0) as fit >from filme >order by (fit desc ,titel asc); > >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. Sogar noch besser, denn LOCATE gibt die Position von $teilwort zurück. Leide klappt dann das mit der sortierung wieder nicht, denn der beste Treffer gibt 1 der nächstbeste 2 und gar keiner 0. Dan man aber die ohne $teilwort nicht braucht, kann man: select titel, LOCATE('$teilwort',titel) as fit from filme order by (fit ASC,titel asc) WHERE fit > 0; Gruß Falk -- Fun is irrelevant ... http://www.totenkomisch.de/ Comedy-Events in Ihrer Nähe! --- http://comedy.cogitatio.de/ --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive