SQL Abfrage von FE Benutzern einer Benutzergruppe [Gelöst]

  • elnino79 elnino79
    T3PO
    0 x
    10 Beiträge
    0 Hilfreiche Beiträge
    16. 11. 2006, 11:04

    Hallo Forum,

    leider stehe ich gerade ein bischen auf dem Schlauch. Folgendes Problem macht mir Kopfzerbrechen. In meiner Extension habe ich eine Abfrage von allen FE Benutzern die einer bestimmten Benutzergruppe angehören.

    Das klappt soweit ganz gut. Doch leider können ja FE Benutzer auch mehreren Benutzergruppen zugehören. Die stehen dann kommagetrennt (4,2,7,1) im Feld usergroup der Tabelle fe_users.

    Mit der Abfrage:
    SELECT * FROM fe_users WHERE usergroup = "7"
    werden nur die angezeigt, wo eine 7 allein im Feld usergroup steht. Nicht die wo die 7 irgendwoe in der kommagetrennten Liste steht :-(

    Mit der Abfrage:
    SELECT * FROM fe_users WHERE usergroup LIKE "%7%" werden zwar auch die angezeigt wo die 7 irgendwo in der kommagetrennten Liste steht aber leider auch die von 17, 27, 77 usw. Halt überall wo eine 7 vorkommt.

    Über einen Tip wäre ich sehr dankbar!


  • 1
  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    20. 11. 2006, 18:11

    einfach umdrehen:

    ... where 7 IN(usergroup)

  • elnino79 elnino79
    T3PO
    0 x
    10 Beiträge
    0 Hilfreiche Beiträge
    23. 11. 2006, 14:23

    leider funktioniert das auch nicht. Es werden nur die angezeigt wo die 7 an erster Stelle stehen. Steht die 7 im Feld usergroup an anderer Stelle (3,5,7,4) zeigt er diesen Eintrag nicht an :-(

  • Stoneage Stoneage
    Jedi-General
    0 x
    1143 Beiträge
    0 Hilfreiche Beiträge
    23. 11. 2006, 16:10

    SELECT * FROM fe_users WHERE usergroup LIKE "%7%" AND NOT LIKE "%17%" AND NOT LIKE "%27%" AND NOT LIKE "%37%" AND NOT LIKE "%47%" AND NOT LIKE "%57%" ...

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    24. 11. 2006, 10:01

    geht noch eleganter:

    WHERE FIND_IN_SET('7',usergroup)>0

  • elnino79 elnino79
    T3PO
    0 x
    10 Beiträge
    0 Hilfreiche Beiträge
    24. 11. 2006, 12:36

    genau so funktioniert...danke...

    Komisch nur das man diesen Befehl nicht in der Befehlsreferenz findet.. naja zumindest in der deutschen :-)

  • steffenk steffenk
    Obi-Wan Kenobi
    0 x
    4666 Beiträge
    0 Hilfreiche Beiträge
    24. 11. 2006, 12:40

    http://dev.mysql.com/doc/refman/5.1/de/index.html

    das ist zwar 5.1, aber das meiste geht auch in 4

  • mitchiru mitchiru
    R2-D2
    0 x
    112 Beiträge
    0 Hilfreiche Beiträge
    04. 12. 2006, 09:33

    noch eine idee :-) :
    WHERE CONCAT(',',usergroup,',') LIKE '%,7,%'

  • 1