phpbar.de logo

Mailinglisten-Archive

Re: Groß- Kleinschreibung
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Groß- Kleinschreibung



Mark Arnold schrieb am Donnerstag, 1999-04-01 11:58:31:
> Christoph Hanser schrieb:
[...]
> > ich dachte, daß mit
> > => select * from tablename where name LIKE 'HALLO'
> > 
> > die Groß- und Kleinschreibung egal ist und dass dieser Befehl
> > sowohl hallo als auch HAllO oder HALLO findet....
> Groß- und Kleinschreibung ist zwar bei den SQL-Befehlen und
> Tabellennamen egal, nicht aber bei String-Operationen bzw. -Vergleichen.

Bei normalem SQL-92 ist das evtl. so (weiß ich nicht auswendig), aber
bei MySQL wird Groß-/Kleinschreibung bei Textvergleichen normalerweise
_nicht_ beachtet - zumindest in den neueren Versionen (ich habe hier
V3.22.19b unter Solaris 2.6).  Ich hab's eben getestet und auch das
Handbuch sagt ausdrücklich:

| 5.1 MySQL extensions to ANSI SQL92
| [...]
|  * All string comparisons are case insensitive by default, with
|    sort ordering determined by the current character set (ISO-8859-1
|    Latin1 by default). If you don't like this, you should declare your
|    columns with the BINARY attribute, which causes comparisons to be
|    done according to the ASCII order used on the MySQL server host.

Ich poste das jetzt zum dritten mal in kurzer Zeit - da scheint großer
Informationsbedarf zu sein ... ;-)

Ganz speziell zu Textvergleichen kommt's im Handbuch noch genauer:

| 16.13 16.13 Case sensitivity in searches
| 
| By default, MySQL searches are case-insensitive (although there are
| some character sets that are never case insensitive, such as
| czech). That means that if you search with col_name LIKE 'a%', you
| will get all column values that start with A or a. If you want to make
| this search case-sensitive, use something like INDEX(col_name, "A")=0
| to check a prefix. Or use STRCMP(col_name, "A") = 0 if the column
| value must be exactly "A".
| 
| Simple comparison operations (>=, >, = , < , <=, sorting and grouping)
| are based on each character's "sort value". Characters with the same
| sort value (like E, e and 'e) are treated as the same character!
| 
| LIKE comparisons are done on the uppercase value of each character
| (E == e but E <> 'e)
| 
| If you want a column always to be treated in case-sensitive fashion,
| declare it as BINARY.

Wenn das LIKE bei Christoph Hanser jetzt doch case-sensitive reagiert,
dann ist die entsprechende Spalte entweder mit dem Attribut BINARY
versehen oder MySQL wurde mit einer Zeichensatzoption übersetzt, die
case-insensitivity nicht unterstützt, oder es ist eine ältere
MySQL-Version (vor V3.10.17).

Ciao,
  Martin
-- 
Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://home.pages.de/~ramsch/ >
PGP KeyID=0xE8EF4F75 FiPr=52 44 5E F3 B0 B1 38 26  E4 EC 80 58 7B 31 3A D7


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive