robertroth: SQL Syntax 4 stellig

Beitrag lesen

Lieber Dedlfix, liebe Mitdenker, liebe Wissende, liebe Neugierige,

ja!

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, und zwar genau in dieser Reihenfolge. Erst die billige Bedingung und dann die teure. Length()

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

Da Könnte man nun abfragen, wie oft der Substring '1' im Spaltenwert vorkommt, indem man die Länge des Spaltenwertes abfragt, dann alle Vorkommen von '1' im Spaltenwert ersetzt durch '' und dann die Länge erneut feststellt. Länge_1 - Länge_2 muss dann der geforderten Anzahl von Vorkommen sein. Prima, lässt sich alles in einer geschachtelten Funktion schreiben, ist aber auch nicht mehr ganz billig.

Außerdem gäbe es auch noch, wenn man es ganz universell und teuer machen will, Regexp()

Die Beispiele aus MySQL, weil kein DBMS angegeben war.

Spirituelle Grüße
Euer Robert

--
Möge der wahre Forumsgeist ewig leben!