Henry: Mysql Json Spalte decode

Hallo,

eine SQL Ausgabe einer Tabelle liefert mir die notwendigen Spalten, wie zb. ID, Name, Beschreibung, usw…

Leider aber auch eine Spalte mit Inhalt im Json-Format. Ich behelfe mir dann indem ich diese Spalte durch PHP aufschlüssele, so dass ich dann wieder eine Extra-Tabelle(CSV) erhalte.

Lieber wäre mir natürlich, wenn ich das bereits bei der MySql Abfrage in einem Rutsch erledigen könnte. Geht das und wie müsste ich da vorgehen?

Hier mal eine Auszug aus dem Jsonstring:

{"@context":"http:\/\/schema.org","@type":"Recipe","name":"Flammkuchen aus einer Brezel","datePublished":"2020-12-07","description":"Das perfekte Resteessen. Einfach \u00fcbrig gebliebenes Gem\u00fcse als Belag nutzen.","totalTime":"PT0S","recipeIngredient":["Eine TK Brezel oder Laugenstange","","50 g Butternussk\u00fcrbis ","","50 g Frischk\u00e4se 0,2% Fett","","30 g Feta mit weniger Fett","","Optional Zwiebeln","","Salz und Pfeffer"],"recipeInstructions":[{"@type":"HowToStep","text":"TK Brezel auftauen lassen oder f\u00fcr ein paar Sekunden in die Mikrowelle geben","position":1,"name":"TK Brezel auftauen lassen oder f\u00fcr ein paar...","url":"#mv_create_5_1"},{"@type":"HowToStep","text":"Den aufgetauten Teig zu einem Ball kneten und zu einem Teig ausrollen","position":2,"name":"Den aufgetauten Teig zu einem Ball kneten und...","url":"#mv_create_5_2"},{"@type":"HowToStep","text":"Nun kommen wir zum Belag und hier kann man seiner Kreativit\u00e4t freien Lauf lassen. EInfach mit dem Frischk\u00e4se bestreichen und mit den restlichen Zutaten belegen","position":3,"name":"Nun kommen wir zum Belag und hier kann...","url":"#mv_create_5_3"},{"@type":"HowToStep","text":"Anschlie\u00dfend f\u00fcr 15-20 Minuten bei 180 Grad in den Backofen geben","position":4,"name":"Anschlie\u00dfend f\u00fcr 15-20 Minuten bei 180 Grad in...","url":"#mv_create_5_4"}],"nutrition":{"@type":"NutritionInformation","calories":"283 calories","carbohydrateContent":"43 grams carbohydrates","fatContent":"4 grams fat","proteinContent":"18,5  grams protein"}}  

Gruss
Henry

--
Meine Meinung zu DSGVO & Co:
„Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
  1. Hallo

    eine SQL Ausgabe einer Tabelle liefert mir die notwendigen Spalten, wie zb. ID, Name, Beschreibung, usw…

    Leider aber auch eine Spalte mit Inhalt im Json-Format. Ich behelfe mir dann indem ich diese Spalte durch PHP aufschlüssele, so dass ich dann wieder eine Extra-Tabelle(CSV) erhalte.

    Lieber wäre mir natürlich, wenn ich das bereits bei der MySql Abfrage in einem Rutsch erledigen könnte. Geht das und wie müsste ich da vorgehen?

    lmddgtfy

    Gleich das (bei mir) erste Suchergebnis sieht passend aus. Allerdings fehlt, wie auch bei der MySQL-eigenen Doku, die Information, ab welcher MySQL-Version die Funktion JSON_EXTRACT vorhanden ist [1]. Allerdings musst du angeben, welche Schlüssel und Werte du aus dem Objekt herauslösen willst. Du musst also die Struktur des JSON-Objekts kennen.

    Tschö, Auge

    --
    Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
    Hohle Köpfe von Terry Pratchett

    1. Wenigstens das ist in der MS-SQL-Doku (für die aktuell unterstützten Versionen) besser gelöst. ↩︎