Hallo,
Hallo,
ich habe soeben versucht einen Suchindex auf Inhalte mit
Anfangsbuchstaben zu realisieren. Leider erhalte ich bei einem Query,
der etwa wie folgt aussieht:
SELECT *
FROM inhalte2
WHERE inhalt_id = 76878
AND titel LIKE 'Y%';
Das (wahre) Geheimnis nennt sich "Collation". Ab einer bestimmten
MySQL-Version (angeblich 4.0, spaetestens 4.1) hat jede Datenbank, Tabelle
und Spalte ein CHARSET und eine COLLATION.
CHARSET ist dabei der Zeichensatz (z.b. latin1 oder utf8). Dieser
bestimmt, wie die Inhalte der Datenbank/Tabelle/Spalte zu interpretieren
sind. Default ist latin1.
COLLATION ist so eine Art "Vergleichsanweisung", die eingesetzt wird, um
String-wertige Inhalte zu vergleichen. Auch diese kann man je
Datenbank/Tabelle und Spalte einzeln setzen. Die COLLATION bestimmt, ob
Umlaut U = UE ist, ob ein Y = UE ist, ob Grossbuchstaben = Kleinbuchstaben
sind u.s.w.
Default hier ist latin1_swedish_ci. Und da ist netterweise UE=Y :-)
Nachzulesen ist das alles hier und auf den folgenden Seiten:
http://dev.mysql.com/doc/mysql/en/charset-server.html
Viele Gruesse,
Thorsten