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...




>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 


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive