Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]3564[/thread]

teilstring in datenbank finden



<< >> 6 Einträge, 1 Seite
supersucker
 2005-04-28 19:19
#33199 #33199
User since
2005-03-17
118 Artikel
BenutzerIn
[default_avatar]
hi,

hab von SQL (postgressql 8 ) nur mittelmässige ahnung und hab folgende frage:

ich bekomme per script einen string übergeben, der nur aus L, H und E besteht wie z.B.
HHH

desweiteren habe ich eine tabelle, die eine spalte hat, in der ähnliche strings stehen.

nun möchte ich eine abfrage machen der folgenden art (in pseudocode) :

Code: (dl )
select * from mytable where HHH enthalten in string_in_spalte


die anzahl der zeichen die ich suche soll nun genau in diesem string enthalten, nicht mehr und nicht weniger, die abfrage mit dem string
HHH soll also zum beispiel matchen auf:

LLLHHHLLL

nicht aber auf:

LLLHHHHHHHLLL

wie kann ich das machen?
wenn ich sowas mache wie

Code: (dl )
select * from mytable where myspalte like %HHH%


würde ich ja eben auch alle strings erhalten die viel mehr Hs enthalten....

auch mit substring wüsste ich nicht wirklich wie ich das machen sollte....

bin dankbar für jede hilfe.......
Ronnie
 2005-04-28 20:45
#33200 #33200
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
EDIT: gelöscht, da Antwort zu anderer Datenbank.\n\n

<!--EDIT|Ronnie|1114706796-->
ptk
 2005-04-28 20:53
#33201 #33201
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Vielleicht [sql]SELECT * from mytable WHERE myspalte like "%HHH%" AND myspalte not like "%HHHH%"[/sql]?
renee
 2005-04-29 11:14
#33202 #33202
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Vielleicht sind allgemeinere Infos zu Pattern Matching bei PostgreSQL ganz nützlich...
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/
supersucker
 2005-04-29 15:22
#33203 #33203
User since
2005-03-17
118 Artikel
BenutzerIn
[default_avatar]
hab mir das mit pattern-matching in postgressql durchgelesen,
werde aber wohl die von ptk vorgeschlagene variante nehmen.....

danke für die tips!
Arkhen2
 2005-05-02 19:19
#33204 #33204
User since
2005-03-11
25 Artikel
BenutzerIn
[default_avatar]
Vielleicht geht auch:

Code: (dl )
1
2
3
4
5
6
select *
from
  mytable
where
  myspalte like '%HHH%' and
  length(replace(replace(myspalte,'L'),'E')) = 3


Ersetzt alle L in myspalte mit NULL und dann
im Rest alle E mit NULL.
Dann dürften ja nur noch 3 HHH übrigbleiben.

findet NICHT: LLLHHHLLLHHEE, HLHEH

Hmm, aber schön ist das auch nicht.
<< >> 6 Einträge, 1 Seite



View all threads created 2005-04-28 19:19.