J'ai des difficultés à interroger les données JSON de MySQL5.7.x.
J'ai le JSON suivant stocké dans le champ activities
. Je veux rechercher les activités dont l'outcome_id = 418.
Ma table contient un enregistrement avec student_id
avec une valeur de 10 et le champ activities
champ.
{
"activities": [
{
"activity": "Quiz from pages 100-102",
"comments": "comments",
"outcomes": [
{
"outcome_id": "418",
"course": "English",
"course_level": "2"
},
{
"outcome_id": "419",
"course": "English",
"course_level": "2"
},
{
"outcome_id": "420",
"course": "English",
"course_level": "2"
},
{
"outcome_id": "600",
"course": "Science",
"course_level": "2"
}
],
"date_completed": "20180102"
},
{
"activity": "Quiz from pages 200-250",
"comments": "comments",
"outcomes": [
{
"outcome_id": "518",
"course": "English",
"course_level": "2"
},
{
"outcome_id": "519",
"course": "English",
"course_level": "2"
}
],
"date_completed": "20180102"
}
]
}
J'ai le code PHP suivant mais je n'obtiens aucun résultat.
$query = ("SELECT
activities->'$.activities[*].activity'
FROM table WHERE
JSON_EXTRACT(activities, '$.activities[*].outcomes[*].outcome_id') = '\"418\"' AND student_id = '10'
");
Avez-vous une idée de ce que je fais de travers ?