MY SQL Suche durch Teilstring

Brenner23

Grünschnabel
Hallo ich habe eine kleine datenbank mit Freunden und Kollegen und dessen telefonummern...
und habe eine kleines Logik Problem....


Datenbank Tabelle
Vorwahl Ort
040 Hamburg
030 Berlin
0471 Bremerhaven
04749 Appeln
......

nun will ich das wenn ich einen datensatz hinzufüge das er m einen ort vorschlagen kann

also ich gebe ein 0471123443355 das sollte in der datenbank der vorwahlen durchsucht werden und dann ergeniss Ort

Vorwahl LIKE ' 0474912345667' geht da irgenwie nicht

ich kann auch nicht mehrere abfragen machen zb.
5 stellige vorwahl >> ergebniss dann
Vergleich Mehr als 1
4 stellige vorwahl >> ergebniss dann
Vergleich Mehr als 1
3 stellige vorwahl >> ergebniss dann
Vergleich Mehr als 1
2 stellige vorwahl >> ergebniss dann
also ihr wist was ich meine

was ich suche ist eine einabfrage möglichkeit ist eine Vorwahl vorhanden die in zu '0474912345667'

und es geht darum das er am anfang des strings anfängt zu suchen, kann ja sein das eine telefonnummer wie folgt aussieht 0301230471 damit wären beu dem Bsp. Berlin und Bremerhaven als ergebiss und das wäre auch wieder falsch

lg
 
Wenn ich das richtig Verstanden habe, suchst du folgendes Strukt:

Like 'asdf%' dh. der Anfang ist gegeben und mit % kann alles kommen,

Code:
SELECT x FROM y WHERE x LIKE '041%';

Grüsse
 
SELECT x FROM y WHERE x LIKE '041%';

Ja wobei ich als x zb in der datenbank Fest mit 04748 steht und mit 0474812345678 verglichen werden soll
umgkert geht es ja wenn die lange ummer in der Datenbank stünde und ich nur nach der vorwahl% frage

Meine idee wäre

SELECT x FROM y WHERE x% LIKE '04768123456'; also x% und vergleich zu voller langer nummer
 
Salü

Nein, hab mich ein bisschen Unklar ausgedrückt.

Auf deine Beispiel-Tabelle bezogen würde es wie folgt lauteN

Code:
SELECT Vorwahl,Ort FROM Tabelle WHERE Vorwahl LIKE '047%';

Falls du jedoch nur eine Teilbereich der ganzen Nummer suchen willst, musst du die Suche per PHP oder sonstiger Sprache zerlegen, damit SQL dir den Ort richtig nennen kann...
 
Also dann muss ich jede vorwahl auslesen und mit einem php vergleich ala $vorwahl% = $Nummer in einer Php String suche und bei gefunden exit

hat mal jemand ein ^[]% vorwahl$ beispiel für so einen Stringsuche :)
 
Hab was besseres gefunden
SELECT * FROM `Vorwahl_Ort` WHERE '0172023234232' LIKE CONCAT(Vorwahl,\'%\') order by Vorwahl DESC limit 0,1

mit ergebniss 1ne ausgabe:)
 
Gratuliere, dass du es gefunden hast.. das vom Contact wusste ich noch nicht. Hab ich wieder was zu "suchen" :-D

Noch ein kleiner Input meinerseits.. "SELECT *" ist bööse.. es ist performanter, wenn man einzelne Spalten direkt selektiert, ohne "*"

Grüsse
 
Zurück