Maison >base de données >tutoriel mysql >Comment interroger des colonnes MySQL avec des données JSON à l'aide des fonctions JSON ?

Comment interroger des colonnes MySQL avec des données JSON à l'aide des fonctions JSON ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-28 22:08:311018parcourir

How to Query MySQL Columns with JSON Data Using JSON Functions?

Interrogation de colonnes MySQL avec des données JSON à l'aide des fonctions JSON

Dans MySQL, vous pouvez stocker des objets JSON en tant que valeurs dans des colonnes de base de données. Pour récupérer efficacement les données de ces colonnes à l'aide de champs JSON spécifiques dans vos requêtes, envisagez d'utiliser des fonctions JSON telles que json_extract().

Utilisation de json_extract() pour le filtrage des requêtes

Par exemple, considérons le tableau suivant nommé articles contenant une colonne nommée json_data avec des objets JSON :

Column Data
id 1, 2, 3
user_id 1, 1, 2
json_data '{"url":"https://www.cpubenchmark.net/","title": "CPU Benchmarks"}', '{"url":"http://www.ebay.com/sch/CPUs-Processors-/164/i.html","title": "Computer and Processors"}', '{"url":"https://www.youtube.com/watch?v=tntOCGkgt98","title": "Funny Cats Compilation"}'

Pour filtrer les enregistrements en fonction d'un champ JSON spécifique, vous pouvez utiliser la fonction json_extract(). Par exemple, pour récupérer des articles contenant le terme « CPU » dans le champ titre des objets JSON :

SELECT user_id, json_data
FROM articles
WHERE json_extract(json_data, '$.title') LIKE '%CPU%';

Cette requête renverra la première ligne, car elle correspond aux critères.

Notes supplémentaires

  • json_extract() vous permet d'extraire des valeurs spécifiques d'objets JSON.
  • Pour les anciennes versions de MySQL (antérieures à 5.7), vous pouvez utiliser méthodes alternatives telles que des routines stockées ou des extensions tierces.
  • Envisagez d'utiliser des index sur les colonnes JSON pour améliorer les performances des requêtes.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn