Abfrage mit mehreren Werten in einer Zelle

Fragenfrager

Erfahrenes Mitglied
Hallo liebes Forum,

mir ist folgende Tabelle vorgesetzt worden:
Benutzername | zugeordneteGruppe

Der "Benutzername" ist dabei eindeutig. In der "zugeordneteGruppe" jedoch sind alle Gruppen aufgeführt, denen der User angehört.
Leider ist die Darstellung sehr unschön, denn der Eintrag sieht z.B. so aus:
Testuser|43~52~53~44~168~64~
Testuser2|44~51~53~41~162~64~


Der Aufbau in zugeordneteGruppe" ist also immer Gruppennummer (1-3 stellig), gefolgt von ~.

Ich benötige nun eine Abfrage, die mir alle Benutzernamen bringt, die beispielsweise in der Gruppe 53 sind.
Die Abfragesprache ist MSSQL.
Und nein, ich kann den Aufbau der Datenbank leider nicht ändern :D
 
Okay, es hilft tatsächlich wenn man bei Schreiben seine Gedanken nochmal ordnet.
Ich mache das jetzt so:
SQL:
SELECT   
Benutzername     
from
tabelle
where 
zugeordneteGruppe like '%53~%' 
order by BenutzerName
Die gesuchte Gruppennummer ergänze ich vorher über php um das ~.
Danke für's zuhören. ;)
 
Zuletzt bearbeitet von einem Moderator:
Sie an, der Fragenfrager....
Alle SQL sind nicht getestet - hab noch nie mit MS SQL gearbeitet - und somit nur Ideen

Setze dein String nochmals in ~ damit jede Zahl mit ~ umgeben ist. Diesen String kannst du dann mit LIKE gegen ~gesuchte_zahl~ vergleichen
SQL:
WHERE '~' + zugeordneteGruppe  LIKE '%~53~%'
/*'~43~52~53~44~168~64~' LIKE '%~53~%'  */'

Nachtrag: Unbedingt den ~davor setzen. Ansonsten findet er die 53 auch bei einem Set von '1~2~153~456~'

PS. Gruss gen Norden
 
Zuletzt bearbeitet von einem Moderator:
HES zum Dank!
Leider ist es so, dass die erste Zahl kein vorangestelltes ~ hat.
Mit meinem oben beschrieben PHP konnte ich mir aber ein passendes dynamisches Statement bauen.
Gruß nach Süden :)
 
Darum habe ich doch den CONCAT (gem. Google bei MS SQL ein +) Hinzugefügt
SQL:
'~' + zugeordneteGruppe
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück