ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
1204
1204
EMPFEHLEN
-
Hallo,
ich habe folgendes Problem: ich möchte anhand der Postleitzahl herausfinden, aus welchem Bundesland ein User stammt. Dafür möcht ich die GeoClass Tabellen benutzen, indem ich die vom User angegebene PLZ mit denen in der GeoClass Tabelle abgleiche und dann bei Übereinstimmung das entsprechende Bundesland herausfiltere. Da in der Tabellenspalte PLZ der GeoClass Tabelle logischerweise auch mehrere PLZs pro Stadt vorhanden sein können, muß ich, um eine Übereinstimmung mit der PLZ des Users zu finden die Tabellenspalte mit like abgleichen. Wie schreibe ich nun den select Befehl mit like, welches sich auf eine Tabellenspalte bezieht und vor und nach dem Namen der Tabellenspalte die '%' Zeichen benötigt?!
Hier im Forum habe ich gelesen, dass die Abfrage mit like bei größeren Datenmengen eher schneckenmäßig daher kommt; kann man diese Abfrage auch schneller und eleganter lösen.
Bin für jede Hilfe dankbar
hegelX
-
Zu deinem Problem mit der Schnelligkeit:
Falls du LIKE verwendest und dabei mehrer Relationen hast, würde ich die Fremdschlüssel indexieren. Das hilft oft schon ziemlich viel. Wenn du jedoch eine Abfrage auf eine einzige Tabelle beschränkst, dann merkst du fast keinen Unterschied zu einem SELECT mit normalen Vergleichen im WHERE Block. Jedenfalls ist mir dies nie merklich aufgefallen.
Zu deinem PLZ-Problem:
Da blicke ich nicht ganz durch. Ein User hat doch nur eine PLZ, eine PLZ gehört immer nur zu einer Stadt (auch wenn diese mehrere PLZs hat), wozu brauchst du denn da noch einen LIKE?
Ich stelle mir das in Pseudo-SQL (
) etwa so vor:
Code :1
SELECT stadt.name FROM stadt, user WHERE user.plz=stadt.plz AND user.name="Ein User"
Die Fremdschlüssel sind da natürlich sehr "hässlich" (die PLZ) und ich würde dies in der Praxis natürlich nicht so machen... ich versuch nur herauszufinden, was du genau willst.
-
Hallo TVE,
danke für deine schnelle Antwort.
Das Problem ist folgendes, der User gibt in ein Formular nur seine PLZ ein, nicht die Stadt (Kunde will das so, da er von mehr Tippfehlern bei der Angabe der Stadt ausgeht). Beziehe ich mich nun auf die 'geodb_locations' Tabelle des GeoClass Projektes, gibt es in der Spalte, in der die PLZ eingetragen sind ('plz') teilweise mehrere Einträge, deshalb muss ich hier like verwenden um das Bundesland rauszufiltern - der Städtename steht mir ja nicht zur Verfügung.
Grüße
-
Hi
wäre es nicht sinnvoll eine Tabelle für die Zuordnung PLZ->Bundesland einmal für alle vorhandenen Plz zu erstellen?
Dann erhälst du zu genau einer PLZ das Bundesland.
vop
-
Ja vop,
ich glaube du hast recht, auf diese naheliegende Idee bin ich natürlich überhaupt nicht gekommen.
thanx
Ähnliche Themen
-
MySQL SELECT Abfrage: DATE_FORMAT?
Von FlorianR im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 20.09.06, 21:45 -
MySQL: SELECT-Abfrage-Problem
Von Ruediger im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 12.05.06, 14:23 -
mysql select abfrage spinnt
Von mitch_byu_kennen im Forum PHPAntworten: 4Letzter Beitrag: 07.09.05, 16:20 -
Flash Abfrage nur auf 1 Bild bezogen
Von Slayer122282 im Forum Flash PlattformAntworten: 3Letzter Beitrag: 06.07.05, 17:03 -
MYSQL Abfrage mit Select in der Like-Abfrage
Von TSchreiber im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 10.04.05, 19:09





Zitieren
Login





