Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

MySQL REGEX Hilfe

Diskussion: MySQL REGEX Hilfe im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Moin zusammen. Ich brauch mal Hilfe beim Zusammensetzen eines MySQL Select Statements. Ich habe eine sehr große Adressdatenbank, wo ...

Antwort
Alt 19.10.07, 09:08   #1 (permalink)
 
Registriert seit: 10.10.03
derhesse Leistung: Facit NTK
Likes: 3
MySQL REGEX Hilfe

Anzeige

Moin zusammen.

Ich brauch mal Hilfe beim Zusammensetzen eines MySQL Select Statements.

Ich habe eine sehr große Adressdatenbank, wo ich anhand von PLZ, Straße, Hausnummer nach Adressen filtere. Jetzt habe ich da ein Problem. Ich schaffe es nicht, in den Hausnummern auch Hausnummern a la 8a oder 45b zu finden.

Statement vereinfacht:

Code:
Select * from adressen where PLZ like $plz and STRASSE like $strasse and HNR like $hnr
Ich habe es schon versucht mit HNR like $hnr%, aber das geht natürlich in die Hose, weil er bei Eingabe von HNR 4 zwar dann auch 4b findet aber eben auch 45 usw. Geht also nicht.

Jetzt suche ich nach einem REGEX Ausdruck, der mein Problem löst. Ich habe schon google bemüht, aber noch nicht das Richtige gefunden. Vielleicht kann einer von euch mir auf den rechten Weg helfen?
derhesse ist offline   Mit Zitat antworten
Alt 19.10.07, 10:13   #2 (permalink)
 
Registriert seit: 16.10.07
onemice Leistung: Facit NTK
onemice eine Nachricht über ICQ schicken
Likes: 0
Standard

Moin,

1. Sollte man sowas sowieso nicht machen:
Code:
Select * from ...
Das schluckt performance.

2. probiers mal so:
PHP-Code:
mysql_query('SELECT * FROM adressen WHERE PLZ = \'' $plz '\' and STRASSE = \'' $strasse '\' and HNR like \'' $hnr '%\''
Hoffe ich hab mich nicht irgendwo vertippt ...

ghost
onemice ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 19.10.07, 10:35   #3 (permalink)
Themenstarter
 
Registriert seit: 10.10.03
derhesse Leistung: Facit NTK
Likes: 3
Standard

Und wie hilft mir das jetzt weiter? Ich habe extra über das Statement geschrieben, dass es vereinfacht ist.

Mir geht es darum, in der Variable $hnr steht z.B. "4" drin. Jetzt möchte ich alle Hausnummern bekommen, a la "4" "4a" "4b" usw. aber eben nicht "40" "41" "42".

Mit Performance und Statements selber habe ich keine Probleme, dass passt alles.
derhesse ist offline   Mit Zitat antworten
Alt 19.10.07, 10:53   #4 (permalink)
 
Registriert seit: 16.10.07
onemice Leistung: Facit NTK
onemice eine Nachricht über ICQ schicken
Likes: 0
Standard

Achso. Welche MySQL Version denn?

Wegen Performance: Dass du keine Probleme damit ist hast ist ok, aber je schneller, desto besser, oder?
onemice ist offline   Mit Zitat antworten
Alt 19.10.07, 11:01   #5 (permalink)
 
Benutzerbild von BasicAvid
 
Registriert seit: 17.03.04
BasicAvid Leistung: Facit NTK
Likes: 2
Standard

Code:
SELECT * FROM adressen WHERE PLZ LIKE $plz AND STRASSE LIKE $strasse AND HNR REGEXP '$hnr[a-z]{1}';
__________________
Mfg Basic Avid
- Use it or be used! -
BasicAvid ist offline   Mit Zitat antworten
Alt 19.10.07, 11:16   #6 (permalink)
Themenstarter
 
Registriert seit: 10.10.03
derhesse Leistung: Facit NTK
Likes: 3
Standard

Danke, aber so findet er nur Einträge die einen Buchstaben haben. Ich habe es aber selbst gelöst, weil es wichtig war.

Wieder stark vereinfacht:
Code:
Select * from adressen where PLZ like $plz and STRASSE like $strasse and (HNR like $hnr or HNR REGEXP $hnr[a-zA-Z])
derhesse ist offline   Mit Zitat antworten
Alt 19.10.07, 12:28   #7 (permalink)
 
Benutzerbild von BasicAvid
 
Registriert seit: 17.03.04
BasicAvid Leistung: Facit NTK
Likes: 2
Standard

Es war auch nur ein Denkanstoss für Dich
__________________
Mfg Basic Avid
- Use it or be used! -
BasicAvid ist offline   Mit Zitat antworten
Alt 19.10.07, 13:54   #8 (permalink)
LX
Moderator
 
Registriert seit: 14.02.06
LX Leistung: Z3
LX eine Nachricht über ICQ schicken LX eine Nachricht über AIM schicken LX eine Nachricht über Yahoo! schicken
Likes: 21
Standard

Code:
SELECT *
FROM adressen
WHERE plz LIKE $plz
AND strasse LIKE $strasse
AND hnr REGEXP '$hnr[a-zA-Z]?'
__________________
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

JS BB LX UP
LX ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » MySQL REGEX Hilfe
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Regex mit grep Serow Linux/UNIX 4 24.03.09 13:55
RegEx Zahlenprüfung Ook! Code Kitchen 8 26.10.08 19:58
php regex mauralix (Web-) Design und webbasierte Sprachen 6 31.03.07 20:35
Regex in C++ jesus Code Kitchen 4 17.01.07 18:15
REGEX: ich suche eine RegEx boppy (Web-) Design und webbasierte Sprachen 3 11.03.05 17:09


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61