EKKi: Select

Beitrag lesen

Mahlzeit,

KundenIDs [Varchar 255]
in diesem Feld sind verschiedene IDs mit Komma getrennt.
also so zB: "12,28,14,2,432,54,122"

Wie von anderer Seite schon gesagt wurde: Dein Datenbankdesign ist Müll. Baue eine vernünftige n:m-Beziehung auf, dann sind die Abfragen 1. bedeutend einfacher zu realisieren und 2. bedeutend schneller.

Ich möchte nun zB alle selektieren wo in KundenIDs die KundenID "2" vorkommt. Wie geht das?

Grundsätzlich mit "LIKE".

Mit LIKE, %LIKE% , %LIKE, LIKE% geht es nicht weil die ID ja überall stehen kann und ich auch nicht (beispielsweise) die "12" selektieren möchte, sondern nur die 2!

Richtig. Du willst also nur den String "2" haben. Sinnvollerweise dort, wo er von Kommata umschlossen ist, also ",2,". Am Anfang oder Ende steht aber keins - also fügen wir bei der Prüfung einfach eins hinzu:

SELECT KundenIDs WHERE ','||KundenIDs||',' LIKE '%,2,%'

Geht das überhaupt MIT SQL in EINEM Select?
(Also nicht mit PHP oder so die Rows durchlaufen usw^^).

Ja. Mit Spucke, Tesa und Nadel und heißem Faden. Die Performance wird unterirdisch sein. Ändere also Deine Datenstruktur.

MfG,
EKKi

--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|