phpbar.de logo

Mailinglisten-Archive

[php] case insensitiv selects

[php] case insensitiv selects

Gloss Mathias php_(at)_phpcenter.de
Mon, 3 Dec 2001 11:03:51 +0100


Hallo,

> Von: 	Till[SMTP:phpcenter.de_(at)_klimpong.com]
>
> ich habe da ein Problem mit einer Suche in einer MySQL-DB.
>
> Wenn ich ueber ein Formular nach "Joe" mit "SELECT * FROM table WHERE
> field LIKE '%$search%'" suche, bekomme ich 1 Ergebnis (gut so). Wenn
> ich statt dessen "joe" eingebe, bekomme ich 0 (nicht gut). Laut
> MySQL-Doku(http://www.mysql.com/Doc/C/a/Case_sensitivity.html) ist
> eine Suche mit LIKE case insensitiv, heisst, eigentlich muesste sowohl
> "Joe", als auch "joe" ("jOe", "JoE", usw.) gefunden werden.
>
> Irgendwie geht's hier doch nicht. Hat jemand eine Idee, oder uebersehe
> ich schlichtweg etwas?
>
Vermutlich hast du die Tabellenspalte als BLOB definiert, statt als TEXT.

Der einzigste Unterschied zwischen den beiden Typen ist, daß bei TEXT
die Suche mit LIKE case-insensitive ist, bei BLOB case-sensitive. Ein
einfaches
ALTER TABLE .... sollte Abhilfe schaffen, oder auf beiden Seiten des
vergleichs lower(...) LIKE lower(...) verwenden, dann werden die Strings in
Kleinbuchstaben vor dem Vergleich umgewandelt.

Grüß,e Mathias


php::bar PHP Wiki   -   Listenarchive