Stringlänge prüfen?
Manfred
- datenbank
0 Stefan Lippmann0 Manfred0 JUlian Hofmann0 Manfred0 Mulder0 Julian Hofmann
0 Julian Hofmann0 Manfred
Hallo,
sorry, bin sql Anfänger...
Ich habe in einer Adressdatenbank eine Anzahl Datensätze mit
4-stelliger statt 5-stelliger PLZ.
Wie kann ich auf die Länge von PLZ abfragen???
select * from firmen where plz ......
Bitte um kurze Info.
Vielen Dank
Manfred
PS.: gibt es zum SQL-Syntax auch etwas bei SELFHTML???
Hallo,
sorry, bin sql Anfänger...
Ich habe in einer Adressdatenbank eine Anzahl Datensätze mit
4-stelliger statt 5-stelliger PLZ.
Wie kann ich auf die Länge von PLZ abfragen???
select * from firmen where plz ......
mach einfach 4 Fragezeichen. Ein Fragezeichen ist Platzhalter für genau 1 anderes x- beliebiges zeichen
Bitte um kurze Info.
Vielen Dank
Manfred
PS.: gibt es zum SQL-Syntax auch etwas bei SELFHTML???
mfg
stefan
Hallo,
sorry, bin sql Anfänger...
Ich habe in einer Adressdatenbank eine Anzahl Datensätze mit
4-stelliger statt 5-stelliger PLZ.
Wie kann ich auf die Länge von PLZ abfragen???
select * from firmen where plz ......
mach einfach 4 Fragezeichen. Ein Fragezeichen ist Platzhalter für genau 1 anderes x- beliebiges zeichen
Danke für die Schnelle Antwort, geht aber nicht...
select * from firmen where plz ="????"
gibt kein Ergebnis während
select * from firmen where plz<3000 and plz>1000
über 600 Treffer ergibt
noch ne Idee?
tänx
Manfred
Bitte um kurze Info.
Vielen Dank
Manfred
PS.: gibt es zum SQL-Syntax auch etwas bei SELFHTML???
mfg
stefan
Hallo,
select * from firmen where plz ="????"
Da prüfst du ja auch, ob es wirklich vier Fragezeichen sind. Müsste sein:
..plz LIKE '????'
select * from firmen where plz<3000 and plz>1000
Vorsicht! 5-stellige PLZ mit führender Null (ja, sowas gibt's) fallen da leicht mit ins Ergebnis.
Grüße aus Würzburg
Julian
Hallo,
select * from firmen where plz ="????"
Da prüfst du ja auch, ob es wirklich vier Fragezeichen sind. Müsste sein:
..plz LIKE '????'
select * from firmen where plz<3000 and plz>1000
Vorsicht! 5-stellige PLZ mit führender Null (ja, sowas gibt's) fallen da leicht mit ins Ergebnis.
Genau das ist ja das Problem.
deswegen will ich ja diese Abfrage nicht benutzen:
select firmenNr,plz from firmen where plz <3000 and PLZ>1000
ergibt >600 Datensätze:
10554-01 01309
10708-01 1558
10761-01 01855
10769-01 01900
10784-01 1277
10827-01 01169
also bleibt ja nur die Stringlänge,
aber deine Variante mit LIKE '????' bringt leider auch 0 Datensätze
:-(
noch ne Idee????
Danke Manfred
Grüße aus Würzburg
Julian
select * from firmen where plz<3000 and plz>1000
Vorsicht! 5-stellige PLZ mit führender Null (ja, sowas gibt's) fallen da leicht mit ins Ergebnis.
Genau das ist ja das Problem.
Bei Oracle:
SELECT * FROM firmen
WHERE to_number(plz)<3000 AND to_number(plz)>1000
Sicher weiß einer der mySQL-Spezis hier die Entsprechung.
Hallo.
select firmenNr,plz from firmen where plz <3000 and PLZ>1000 AND substring(plz,1)!='0'
Damit sollten PLZs mit führender Null ausgeschlossen sein.
Mit etwas Glück hab ich jetzt in der Doku die richtige Stelle entdeckt: LENGTH(zeichenkette)
Grüße aus Würzburg
Julian
Hallo.
select firmenNr,plz from firmen where plz <3000 and PLZ>1000 AND substring(plz,1)!='0'
Hallo Julian,
mit einer kleien Änderung hat es geklappt:... substring(plz,1,1)!='0'
Vielen herzlichen Dank
Manfred
jetzt gilt es nur noch den 79 Datensätzen die fehlende "0" zu verpassen.
ciao
Manfred
Falls es dich interessiert, es geht um das Projekt www.optikersuchmaschine.de. kannst ja mal einen kleinen Blick drauf werfen. Danke nochmal!!!
Damit sollten PLZs mit führender Null ausgeschlossen sein.
Mit etwas Glück hab ich jetzt in der Doku die richtige Stelle entdeckt: LENGTH(zeichenkette)
Grüße aus Würzburg
Julian
jetzt gilt es nur noch den 79 Datensätzen die fehlende "0" zu verpassen.
UPDATE tabelle
SET plz = '0' || plz
WHERE substr(plz,1,1) <> '0'
(wieder mal Oracle-Syntax, scusa ;-)
Hallo Manfred,
PS.: gibt es zum SQL-Syntax auch etwas bei SELFHTML???
Jou, die Doku (http://www.mysql.com/doc/ bzw. http://www.mysql.de/doc/). die englische ist mit Userkommentaren und daher manchmal hilfreicher.
Mag gerade keine Suchanfrage von mir nehmen, die Doku. :-(
Daher auch keine konkrete Lösung. Das aber u.a. auch eine Substring-Funktion zur Verfügung steht, dürfte sich auch eine Suche nach Strinlänge lohnen. Ist aber jetzt Spekulation.
Grüße aus Würzburg
Julian
Hallo,
sorry, bin sql Anfänger...
Ich habe in einer Adressdatenbank eine Anzahl Datensätze mit
4-stelliger statt 5-stelliger PLZ.
Wie kann ich auf die Länge von PLZ abfragen???
select * from firmen where plz ......
Bitte um kurze Info.
Vielen Dank
Manfred
Hallo zusammen,
ich habe bei http://www.mysql.de/documentation/mysql/bychapter/manual.de_Tutorial.html#Pattern_matching
eine gute Beschreibung gefunden, die absolut gut funktioniert:
... where plz like "____" (4 Unterstriche für 4-stellig"
Danke nochmal an alle, die mir geholfen haben!
Gruß
Manfred