Articles

Beispiele für groß- und kleingeschriebene SQL SELECT-Abfragen

Posted on

Groß- und kleingeschriebene SQL SELECT-Abfragen FAQ: Wie kann ich SQL SELECT-Abfragen erstellen und dabei die Groß- und Kleinschreibung ignorieren?

Hintergrund

Als ich anfing, SQL-Abfragen zu schreiben, verwendete ich Postgresql und nutzte einige ihrer benutzerdefinierten Funktionen für reguläre Ausdrücke, um Abfragen ohne Berücksichtigung der Groß- und Kleinschreibung durchzuführen. Das schien damals eine gute Idee zu sein, aber als ich versuchte, meine Anwendung auf eine MySQL-Datenbank umzustellen, funktionierte ein Teil meiner Anwendung nicht mehr. Nach einiger Fehlersuche erinnerte ich mich daran, dass ich Postgreql-spezifische Abfrage-Fähigkeiten verwendet hatte, also musste ich diesen Teil des Codes neu schreiben, damit er mit MySQL funktioniert.

Um Ihnen diesen Ärger zu ersparen, zeigen die folgenden Beispiele, wie man SQL SELECT-Abfragen mit Groß-/Kleinschreibung unter Verwendung der SQL-Standardsyntax schreibt. Die gezeigten Abfragen sollten mit den meisten, wenn nicht sogar allen SQL 92-kompatiblen Datenbanken funktionieren.

Ein sehr wichtiger Vorbehalt

Bitte beachten Sie, dass es eine SEHR WICHTIGE Sache zu dem gezeigten Ansatz zu sagen gibt:

Diese Abfragen zwingen Ihre Datenbank, einen Tabellenscan durchzuführen. Das bedeutet, dass, wenn Sie einen Index auf der Spalte haben, in der Sie suchen, dieser Index nicht verwendet wird. Wenn Sie also eine Milliarde Datensätze in Ihrer Tabelle haben, zwingt dieser Ansatz die Datenbank dazu, sich alle eine Milliarde Datensätze anzusehen.

Ich poste keine Kommentare von Leuten, die sich abfällig äußern, aber wie eine Person in den Kommentaren (zwischen Beleidigungen) schrieb, „die Verwendung einer Funktion zur Umwandlung einer ganzen Spalte von Daten erfordert einen Tabellenscan und sollte in einer WHERE-Klausel vermieden werden.“

Case insensitive SQL SELECT: Verwenden Sie Funktionen für Groß- und Kleinschreibung

Der SQL-Standardweg, um Abfragen ohne Berücksichtigung der Groß- und Kleinschreibung durchzuführen, ist die Verwendung der SQL-Funktionen upper oder lower, etwa so:

select * from users where upper(first_name) = 'FRED';

oder so:

select * from users where lower(first_name) = 'fred';

Wie Sie sehen können, besteht das Muster darin, das Feld, in dem Sie suchen, in Groß- oder Kleinbuchstaben zu schreiben und dann Ihre Suchzeichenfolge ebenfalls in Groß- oder Kleinbuchstaben zu schreiben, um der verwendeten SQL-Funktion zu entsprechen. Das funktioniert mit allen SQL-Datenbanken, die ich verwendet habe, einschließlich Postgresql, MySQL und SQL Server.

SQL LIKE-Abfragen

Sie können dieselbe Technik verwenden, um Ihre SQL LIKE-Abfragen auch von der Groß-/Kleinschreibung unabhängig zu machen. Hier sehen Sie, wie Sie die Großbuchstabenfunktion mit einer SQL LIKE-Abfrage verwenden:

select * from users where upper(first_name) like '%AL%';

und hier die gleiche SQL LIKE-Abfrage ohne Berücksichtigung der Groß-/Kleinschreibung mit der SQL lowercase-Funktion:

select * from users where lower(first_name) like '%al%';

Zusammenfassung

Ich hoffe, dass diese Beispiele für groß- und kleingeschriebene SQL SELECT-Abfragen hilfreich sind. Auch hier besteht der Trick darin, das, wonach Sie suchen, mit den SQL-Funktionen für Groß- und Kleinschreibung in Groß- oder Kleinbuchstaben umzuwandeln und dann Ihre Suchzeichenfolge an diese Groß-/Kleinschreibung anzupassen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.