Schrift
[thread]3500[/thread]

regexp in einer mysql-abfrage



<< >> 7 Einträge, 1 Seite
[HR]Doomrunner
 2004-08-15 21:26
#32564 #32564
User since
2003-09-04
77 Artikel
BenutzerIn
[default_avatar]
Hi,

ich habe folgendes Problem: Aus einer MySQL-Tabelle muss nach Ortschaften gesucht werden.

Wenn ich jetzt z.B. die Ortschaft: Ellenz-Poltersdorf suche, so sollte diese auch gefunden werden, wenn ich "EllenzPoltersdorf" (also ohne Bindestrich) eingebe.

Kann man sowas auch per Regexp oder so in der mysql-Abfrage machen?
renee
 2004-08-16 01:42
#32565 #32565
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Hier geht's um RegEx in MySQL: http://board.perl-community.de/cgi-bin....0;t=889
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
[HR]Doomrunner
 2004-08-16 02:20
#32566 #32566
User since
2003-09-04
77 Artikel
BenutzerIn
[default_avatar]
hm,

hab mich da mal durchgelesen, aber keine Lösung für mein Problem gefunden...

Die Suchen ja nach Einträgen, in denen ein Punkt vorkommt.

Mir geht es darum, dass ein Eintrag mit einem "-" mitten im Wort auch gefunden wird, wenn der Suchstring das nicht enthält.
renee
 2004-08-16 08:49
#32567 #32567
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich habe ja nicht gesagt, dass Du in dem Thread die Lösung Deines Problems findest. Ich habe den Link gepostet, weil dort gezeigt wird, wie Regexp in MySQL geht...

Dann splitte doch am '-' und mach ne MySQL-RegExp '$teil1\-?$teil2'!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Crian
 2004-08-18 14:55
#32568 #32568
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
@Renee: Falsche Richtung. Er will nicht aus A-B AB finden, sondern aus AB A-B.

Dafür ist einiges zu klären:

Ist nur AaaaBbbbb -> Aaaa-Bbbbb erlaubt, oder auch Aa-aaBbbbb ? ersteres wäre weniger schwierig... ansonsten musst Du zwischen allen Buchstabenpaaren testweise einen Bindestrich einfügen und versuchen, ob Du Informationen von der DB dazu zurückbekommst. Das ist aufwändig (auch auf DB-Ebene) und lästig.

Andere Alternative: Du holst Dir die komplette Tabelle (würg) und testest dann, ob ev. die um Bindestriche bereinigten Ortsnamen auf den Suchstring passen.

Am besten ist die Groß-Kleinschreibvariante und nur ein erlaubter Bindestrich.\n\n

<!--EDIT|Crian|1092826605-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
ptk
 2004-08-18 15:15
#32569 #32569
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Oder man erzeugt eine neue Spalte in der Tabelle, die den Ortsnamen in Kleinschreibung und ohne jegliche Spaces und Bindestriche ablegt. Dann koennte man sehr schnell suchen.
renee
 2004-08-18 15:54
#32570 #32570
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@Crian: danke für den Hinweis... habe ich im Eifer des Gefechts wirklich falsch im Gedächtnis gehabt.

Ich denke ptk's Lösung ist komfortabel!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 7 Einträge, 1 Seite



View all threads created 2004-08-15 21:26.