Technik einfach und verständlich erklärt.
Sie können nützliches zu einem interessanten Thema berichten? Dann schreiben sie selbst einen Artikel auf Technikpedia!
 
Technik von Profis erklärt
Auf www.technikpedia.de können Sie Informationen zu verschiedenen Themen aus der Technik und Informatik finden. Durch verschiedene Editoren sind die Artikel besonders informativ und aussagekräftig.
Suchen mit „where like“-Bedingung – Groß-/Kleinschreibung
Jeder, der bereits mit einer Datenbank gearbeitet hat, wird schon einmal die „like”-Klausel in der „where”-Bedingung verwendet haben.
SELECT * FROM tabelle WHERE feld LIKE ‘%suchtext%’
Dabei wird einem bestimmt aufgefallen sein, dass die Datenbank entweder zwischen Groß- und Kleinschreibung unterscheidet oder sie die Unterscheidung immer ignoriert.
Ob jetzt die Datenbank zwischen Groß- und Kleinschreibung unterscheidet kann man mit folgendem Befehl ermitteln:
SELECT serverproperty(’Collation’)
Als Ergebnis wird zum Beispiel „Latin1_General_CI_AS” oder „Latin1_General_CS_AS” zurueck geliefert. Dies ist die so genannte Collation. Sie gibt die unter anderem die Art der Sortierung in der Datenbank an. Für uns sind an dieser Stelle das CI und das CS wichtig. Dabei steht das CI für case ignore. Das kommt aus dem Englischen und bedeutet soviel wie das die Groß- und Kleinschreibung egal ist. Das CS steht für case sensitive. Hier spielt die Großschreibung bzw. Kleinschreibung eine Rolle.
Wenn das Ergebnis von SELECT serverproperty(’Collation’) zum Beispiel Latin1_General_CI_AS lautet, dann liefert
SELECT * FROM tabelle WHERE feld LIKE ‘%suchtext%’
die gleichen Ergebnisse wie
SELECT * FROM tabelle WHERE feld LIKE ‘%suCHtext%’.
Wenn aber bei der Datenbank die Collation Latin1_General_CS_AS eingestellt ist, dann schränkt die where-Bedingung den SQL-Befehl unterschiedlich ein.
Nun kann man die Collation für die Datenbank ändern. Da dies aber häufig nicht gewünscht oder nicht möglich ist, lässt sich die Collation direkt in der Select-Anweisung angeben.
So kann man zum Beispiel
SELECT * FROM tabelle WHERE feld LIKE ‘%Suchtext%’ COLLATE Latin1_General_CS_AS
schreiben, wenn die Groß- und Klein-Schreibung eine Rolle spielen soll. Felder mit dem Begriff „Suchtext” werden gefunden, aber nicht mit „suchtext”.
Wenn die Groß-/Kleinschreibung egal sein soll (man möchte „Suchtext”, „suchtext” sowie „SUCHTEXT” und „suchTeXt” finden), dann schreibt man
SELECT * FROM tabelle WHERE feld LIKE ‘%Suchtext%’ COLLATE Latin1_General_CI_AS
Hinweis: Diese Schreibweise funktioniert leider erst ab einem Datenbank-Kombatibilitätsgrad von 80.
Andere interessante Beiträge:
- Temporäre Tabellen in einer Datenbank
- PHP: Select Textfeld von MS-SQL-Datenbank, Zeichen werden abgeschnitten
- Wordpress Blog einrichten
- XT Commerce Teil 1 : Installation
- Fehler beim Daten Import / Export aus einer Excel-Datei mit dem Microsoft Server Management Studio 10 in eine Microsoft SQL Server 2008 Datenbank