Ankündigung

Einklappen
Keine Ankündigung bisher.

serialize array in colum

Einklappen

Neue Werbung 2019

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

  • serialize array in colum

    Hallo Leute,

    ich habe ein kleines Problem, Ich habe in einer Tabelle eine Spalte in der ein serialize(array) ist. Nun möchte ich gucken ob in dem array ein bestimmter Wert vorhanden ist.

    PHP-Code:
    $sql "SELECT
            `NR`
             FROM `rennen_unter`
             WHERE `RENN_ID`= SUBSTRING("
    .$race_id.",1,3)
             AND `bundesland`= '"
    .$bundesland_1."'
             AND `Klassen`/*der Inhalt ist ein Array*/ = '"
    .$class."' "
    das funktioniert ja nicht, da `Klassen`ein Array ist. Wie zerlege ich in der Abfrage das Array?

  • #2
    Nutze für sowas passende Datentypen, in PostgreSQL würde ich JSONB empfehlen, und speichere es als JSON-Dokument. Das kannst Du dann auch indexbasiert nach sowas durchsuchen. In MySQL den Wechsel der DB oder halt drauf verzichten, das so zu speichern, da es keine passenden Datentypen dafür gibt.
    PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

    Kommentar


    • #3
      Ein serialize(array) ist leztlich nur ein String. Du möchtest also einen Teil im String finden. Unter bestimmten Bedingungen (Wir kennen den Aufbau deines Strings nicht) kannst du mit
      der MySQL-Funktion SUBSTRING_INDEX eine Lösung basteln.

      Kommentar


      • #4
        Zitat von akretschmer Beitrag anzeigen
        in PostgreSQL würde ich JSONB empfehlen
        Seit 5.7 nun auch in MySQL

        https://dev.mysql.com/doc/refman/5.7/en/json.html
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar

        Lädt...
        X