Schwieriger (unmöglicher?) select... (MySQL)

Hallo,

folgendes Problem:
ich möchte aus einer Tabelle Telefon-Vorwahlen auswählen.
Diese sind im Format 06912345XXX (CHAR(15)) abgelegt.
In einem php Formular kann man nach diesen Vorwahlen suchen, und zwar mit beliebig vielen Stellen (der Vorwahl). Also für Düsseldorf z.B. 02, 021 oder 0211. Und dann soll man auch noch Bereiche auswählen können, z.B. von Bereich 021 bis 034 (jeweils auch wieder mit beliebig vielen Stellen!)

Der Versuch: "SELECT * FROM tabelle WHERE number >= ‚$von%‘ AND number

Hallo!

Ich glaube die Sache hakt logisch … wie soll er wissen welchen Bereich er nehmen soll wenn du ihn nicht fix angibst?

Wozu sind die XXX überhaupt gut? Und wieso sind Vorwahlen so lange?? :o)

Grüße, Robert

Hallo Robert,

Wozu sind die XXX überhaupt gut?

die Telefonnummern stammen aus Einzelverbindungsnachweisen, und müssen aus datenschutzrechtlichen Gründen sein.

Und wieso sind Vorwahlen so lange?? :o)

Die Zahl die ich dort angegeben habe, war eine komplette Telefonnummer, aber gesucht werden soll nur nach der Vorwahl.

Ich glaube die Sache hakt logisch … wie soll er wissen
welchen Bereich er nehmen soll wenn du ihn nicht fix angibst?

Naja, das ist ja genau mein Problem: Darum müsste ich ja eigentlich mit Platzhaltern arbeiten. Nach folgendem Muster:
wenn man 02 angibt, soll er alles suchen was mit 02 anfängt, also 020000 bis 029999 oder bei 021 dann entsprechend 021000 bis 021999.

Nach folgendem Muster:
wenn man 02 angibt, soll er alles suchen was mit 02 anfängt,
also 020000 bis 029999 oder bei 021 dann entsprechend 021000
bis 021999.

Dann täte ich die Felder als Strings (VARCHAR) definieren.

Suchen tust du einfach per
SELECT … WHERE telefonnummer LIKE ‚02%‘

Dann sollte er das tun was du brauchst. :smile:

Grüße, Robert

Einfach als Strings lassen und mit

SELECT … WHERE ((Left([Telefonnummer],2)=„02“));

oder eben >02 und