[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