[Postfixbuch-users] (OT) Emails landen im Postfach, aber werden nicht angezeigt
Marcel Hartmann
mail at marcel-hartmann.com
Di Aug 19 09:01:08 CEST 2008
Hi,
> > Wie sieht denn ein query mit LIKE aus?
>
> z.B. statt dem da:
>
> password_query = SELECT password FROM mailbox WHERE binary username =
> '%u'
>
> SELECT password FROM mailbox WHERE username LIKE '%u';
> wobei hier nun alles gefunden wird, was mit u oder U endet, egal was
> davor steht. (% ist eine WildCard, da kann alles oder nichts stehen)
>
> > Wo sind die Vor und Nachteile?
>
Like wird verwendet wenn man Datensätze suchen möchte, etwa bei Sucheingaben
in Shops oder sowas. Meist mit mehr als einem Treffer. Wie Steffen bereits
schrieb ist jeder query case intensitive, also sollte eigentlich auch der
Standard
Query funktionieren. Da Du aber dafür ja bereits die Lösung gefunden hast
(BINARY)
Ists doch in Ordnung. LIKE war nur eine Idee.
Ich würde dabei dann einfach die '%' weglassen! Sonst ist das Ergebnis ja
nicht mehr eindeutig
wenn es mehrere User mit gleichem Anfang oder so gibt. :)
Kann aber auch sehr langsam werden je nach Datenaufkommen! Also bei über
1 Million Datensätzen wird er schon ein paar Sekunden brauchen. Bei
Webanwendungen nutzt man deshalb ja boolean Volltextsuche in Querys. Aber
das denke ich
wird hier nicht in Frage kommen, zumal da noch einiges für die Indexe etc.
zu beachten
wäre damit der query performant bleibt. Grundsätzlich sollte man einen Index
auf die username
und passwort Attribute der MySQL Tabelle setzen, damit MySQL diese indiziert
und im Speicher vorhält
Gruß
Marcel
Mehr Informationen über die Mailingliste Postfixbuch-users