Requête avec du JSON syntaxe MySQL
rdbn
Messages postés
96
Statut
Membre
-
rdbn Messages postés 96 Statut Membre -
rdbn Messages postés 96 Statut Membre -
Bonjour,
J'ai une table user avec plusieurs rôles attribué pour chaque utilisateur, roles = ["ROLE_ADMIN"] , ["ROLE_USER"] , ["ROLE_ANON"].
roles est de type JSON.
mntn je veux récupérer tout mes utilisateurs avec le rôle user.
J'ai essayé plusieurs écriture mais toujours un retour d'un résultat vide.
Merci
J'ai une table user avec plusieurs rôles attribué pour chaque utilisateur, roles = ["ROLE_ADMIN"] , ["ROLE_USER"] , ["ROLE_ANON"].
roles est de type JSON.
mntn je veux récupérer tout mes utilisateurs avec le rôle user.
J'ai essayé plusieurs écriture mais toujours un retour d'un résultat vide.
SELECT roles FROM `user`
WHERE roles = `["ROLE_ORGANISATEUR"]`
#
WHERE JSON_EXTRACT(roles, '$.roles') = 'ROLE_ORGANISATEUR'
#
WHERE JSON_EXTRACT(roles, '$.roles') = 'ROLE_ORGANISATEUR'
#
WHERE roles = JSON_EXTRACT(roles, '$.ROLE_ORGANISATEUR')
Merci
2 réponses
-
Bonjour,
Pourquoi JSON_EXTRACT ?
Moi je regarderai plutôt du côté de JSON_SEARCH
https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html
-
Bonjour,
De base, je n'ai aucune idée de comment l'écrire.. j'ai donc fais des recherches, et dans toutes ces recherches, il m'a semblé peut être à tord, que JSON_EXTRACT me renverrait le JSON sélectionné avec pour json_doc la table et le path la valeur qu'on veux renvoyé..
En tout cas j'ai suivi ton lien, et j'ai essayé avec JSON_SEARCH et j'ai toujours un résultat vide.
Je pense écrire mal la requête...
SELECT roles FROM `user` WHERE roles = JSON_SEARCH(@roles, 'all', '%ORGANISATEUR%')