Ankündigung

Einklappen
Keine Ankündigung bisher.

Frage: richtige SQL Abfrage von einer MySQL Spalte die SET werte besitzt

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Frage: richtige SQL Abfrage von einer MySQL Spalte die SET werte besitzt

    hallo

    habe eine MySQL Spalte "config" mit Typ SET('oi', 'oa', 'mi', 'ma', 'gi', 'ga')
    und ich möchte folgende SQL Abfrage realisieren...

    SELECT * FROM table WHERE config = 'oi'

    das funktioniert WENN die einträge NUR oi besitzen...
    ich verwendete SET um mehrere auswahlmöglichkeiten in einer Spalte zu speichern... (war für mich der SINN am SET da ich sonst ENUM hätte verwenden können) d.h. wenn ein Eintrag z.b. oi, mi und gi besitzt klappt die Abfrage nicht...

    wie kann ich nun diese abfrage so realisieren das egal wieviel andere werte noch gesetzt sind... sofern oi gesetzt ist immer die Daten ausgegeben werden...?
    LIKE funzt nicht... oder geht LIKE *oi* ???
    AND OR müsste ich ja alle kombinationen wie oi vorkommen kann in verbindungen mit den anderen schreiben... schwachsinn...

    was ich schonmal gesehen habe... einfach alle auslesen und mit PHP den Wert config bei jedem , trennen "oi,oa,mi" so das oi erkannt wird sofern es vorhanden sein sollte...
    weiß allerdings nicht wie das geht...

    gibt es noch andere wege? gibt finde ich sehr schlechte umsetzungsmöglichkeiten dafür

  • #2
    Hallo Seb und wilkommen im Forum,

    LIKE sollte eigentlich schon gehen. Allerdings sind die Platzhelter bei LIKE %-Zeichen und nicht *.

    Die andere Möglichk ist find_in_set() zu verwenden.

    Siehe auch im Manual wo das ganze eigentlich ganz gut beschrieben ist:
    MySQL :: MySQL 5.0 Reference Manual :: 10.4.5 The SET Type
    [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

    Kommentar


    • #3
      danke für die schnelle Lösungsantwort

      ich hab MySQL Referenzbuch immer parat und habe auch versucht daraus eine Lösung zu finden... allerdings wars wohl nicht intensiv genug...

      Kommentar

      Lädt...
      X