MYSQL REGEXP
Gwindori
- datenbank
0 wahsaga
Hallihallo
Habe folgendes Problem:
Ich habe 2 Tabellen:
schueler hatte mehrere Felder, unter anderem das Feld GRUPPE varchar
In diesem Feld werden die Indices der Gruppenangegeben, dem der SCHÜLER angehört.
Im Feld GRUPPE werden die Zahlen mit je einem 'a' umgeben abgespeichert, d.h.:
a0aa1aa10a
Die Query sieht dann folgender Maßen aus:
... schueler.gruppe REGEXP 'a'+gruppen.id+'a' ...
Das klappt im Grunde, aber nur so lange bis GRUPPEN.ID noch kleiner 10 ist
Er nimmt den Ausdruck jetzt nicht (beispielsweise) 'a10a'
denn wenn ich das manuell eingebe erhalte ich das gewünscht ergebnis
-> er findet nur 10
Nun wollte ich fragen wie ich das machen kann, dass wenn ich den Wert eines Feldes in den RegAusdruck stecke, mir das richtige Ergebnis heraus kommt!?
(Ich hoffe ich habe mich halbwegs verständlich ausgedrückt)
MfG Christoph
hi,
schueler hatte mehrere Felder, unter anderem das Feld GRUPPE varchar
In diesem Feld werden die Indices der Gruppenangegeben, dem der SCHÜLER angehört.
Im Feld GRUPPE werden die Zahlen mit je einem 'a' umgeben abgespeichert, d.h.:a0aa1aa10a
das sieht nach einem ziemlich verkorksten datendesign aus ...
warum nutzt du nicht die möglichkeiten, die mysql für solche fälle anbietet? z.b. der datentyp SET würde sich dafür m.E. viel besser eignen, http://dev.mysql.com/doc/mysql/de/SET.html.
(wenn nicht vllt. sogar eher eine weitere normalisierung anzuraten wäre.)
Nun wollte ich fragen wie ich das machen kann, dass wenn ich den Wert eines Feldes in den RegAusdruck stecke, mir das richtige Ergebnis heraus kommt!?
schau dir auf der verlinkten seite an, wie du abfragst, ob ein oder mehrere elemente des SETs im datensatz enthalten sind.
die jetzige datenstruktur und das rumgehampel mit REGEXP sind ... suboptimal.
gruß,
wahsaga