dedlfix: SQL Syntax 4 stellig

Beitrag lesen

Tach!

Wie kann ich im SQL Syntax angeben das er nur nach 4 stelligen Einträgen suchen soll? Logischerweise wenn ich jetzt SpalteX LIKE '1%' findet er mir folgende:

Es gibt zwei Jokerzeichen für LIKE, % steht für mehrere Zeichen, _ (Unterstrich) für ein einzelnes.

Zielführender wird hier aber

WHERE LENGTH(`spalte`) = 4 AND `spalte`LIKE '%1%'

sein,

Das ist nun aber etwas hineininterpretiert, was so nicht ganz klar in der Frage stand. Der gezeigte Code geht davon aus, dass die gesuchte Ziffer am Anfang vorkommt. Die Frage ist, ob das so richtig ist oder ob die Ziffer doch an beliebiger Stelle stehen soll.

und zwar genau in dieser Reihenfolge. Erst die billige Bedingung und dann die teure.

Wenn sie nur am Anfang vorkommen soll, ist LIKE '1____' ohne Längenprüfung anzunehmenderweise performant genug, wenn ein Index auf der Spalte sitzt.

Obiges führt allerdings auch noch zu "ätsch', weil die '1' hier auch noch mehrmals vorkommen darf im Spaltenwert.

Das Beispiel 1111 zeigt, dass Mehrfachvorkommen wohl unproblematisch sind. Nicht ganz klar zu entnehmen ist, ob nur 1111 gefunden werden soll oder auch zum Beispiel 1234.

dedlfix.