Maison >base de données >tutoriel mysql >Comment puis-je interroger des données JSON dans MySQL en fonction de valeurs de champ spécifiques ?
Interrogation de données JSON dans MySQL
Problème :
Vous avez une table MySQL avec un colonne qui stocke les objets JSON. Vous devez exécuter des requêtes qui filtrent les résultats en fonction de valeurs de champ JSON spécifiques.
Solution : Utilisation de la fonction json_extract
MySQL 5.7 et versions ultérieures ont introduit la fonction json_extract, qui vous permet pour extraire des valeurs spécifiques des objets JSON stockés dans une colonne. Cela vous permet d'effectuer des requêtes comme celles-ci :
<code class="sql">SELECT user_id, json_data FROM articles WHERE json_extract(json_data, '$.title') LIKE '%CPU%';</code>
Exemple :
Considérez le tableau suivant :
<code class="sql">CREATE TABLE articles ( id int NOT NULL, user_id int NOT NULL, json_data json NOT NULL ); INSERT INTO articles (id, user_id, json_data) VALUES (1, 1, '{"url":"https://www.cpubenchmark.net/","title": "CPU Benchmarks"}'), (2, 1, '{"url":"http://www.ebay.com/sch/CPUs-Processors-/164/i.html","title": "Computer and Processors"}'), (3, 2, '{"url":"https://www.youtube.com/watch?v=tntOCGkgt98","title": "Funny Cats Compilation"}');</code>
Exécuter la requête ci-dessus renverra le résultat suivant :
<code class="sql">+---------+--------------------------------------------------------------------------------------------------+ | user_id | json_data | +---------+--------------------------------------------------------------------------------------------------+ | 1 | {"url":"https://www.cpubenchmark.net/","title": "CPU Benchmarks"} | +---------+--------------------------------------------------------------------------------------------------+</code>
Cela montre comment la fonction json_extract peut être utilisée pour filtrer les données JSON dans MySQL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!