Bonjour,
Il me semblait avoir placé mon sujet dans le forum "bases de données" et j'ai oublié de préciser ensuite en effet désolé.
Je suis bien sur MySQL 8, tu as tout bon. :)
Quand je teste la seconde possibilité avec la notation "->" j'ai droit au message d'erreur "Invalid JSON path expression, The error is around character position 14.". (J'ai bien enlevé la parenthèse de top à la fin).
J'ai testé en mettant :
SELECT data->"$**.formations_id" as first_formation_id FROM interviews;
Il me ressort bien tous les "formations_id" de mon JSon, mais je souhaiterais bien limiter ça pour le niveau "formations", et dans l'idée au lieu d'obtenir un résultat du type ["64", "41"], avoir ça sur des lignes différentes avec pour chaque ligne le nom de la formation correspondante.
Je continue mes recherches pendant ce temps, je n'attends pas que la réponse arrive toute cuite quand même, mais je débute avec tout ce qui est JSon et MySQL et je galère un peu... Et ça se voit. ;)
Merci en tout cas !
EDIT> Je viens de tester avec cette requête :
SELECT data->"$.formations.*.formations_id" as formation_id FROM interviews
Je ne récupère que les "formations_id" du niveau "formations" donc nickel.
Ce qu'il me manque maintenant c'est de récupérer les résultats sous forme de lignes différentes, comme ce qu'on obtiendrait avec des enregistrements "classiques" on va dire, et donc avec le nom de la formation qui va bien pour chaque.
Ca avance... :D
EDIT 2
La preuve que je cherche... :D
Je viens de trouver un truc qui me paraît pas mal du tout, voici la requête :
SELECT
formations.formations_id AS ID
FROM
interviews,
JSON_TABLE(data, "$.formations.*" COLUMNS (formations_id INT PATH '$.formations_id')) formations
Avec ça j'ai un ID par ligne, et je suppose qu'ensuite je vais pouvoir faire les relations facilement avec mes enregistrements de ma table "formation"