Question rapide, j'ai un objet de données JSON par exemple {"nom": "John", "Âge": 30, "voiture": null} code>, est-il possible de stocker ce juste Comme c'est dans un champ mysql?, et à son tour, lisez-le? P>
3 Réponses :
Oui, vous devez définir la colonne correctement (je les définis habituellement comme texte). Après cela, vous pouvez utiliser json_decode () et c'est il p>
Ensuite, vous stockez du texte, pas JSON.
Cela devrait être utile: https://dev.mysql.com/doc/refman/8.0/ EN / JSON.HTML
MySQL prend en charge les objets JSON, alors quelque chose comme ça: P>
mysql> CREATE TABLE t1 (jdoc JSON);
Query OK, 0 rows affected (0.20 sec)
mysql> INSERT INTO t1 VALUES('{"key1": "value1", "key2": "value2"}');
Query OK, 1 row affected (0.01 sec)
mysql> SELECT jdoc FROM t1;
+---------------------------------------------------------+
| jdoc |
+---------------------------------------------------------+
| {"key1": "value1", "key2": "value2"} |
+---------------------------------------------------------+
Vous pouvez stocker fondamentalement tout ce que vous voulez dans un champ MySQL, les seules contraintes sont le type de données et la taille maximale du champ. Que cela a du sens est une autre question et dépend de votre cas d'utilisation. Deux cas qui ont du sens sont les suivants: p>
Si vous avez simplement besoin d'un endroit pour stocker un tableau / objet sérialisé quelque part et que vous n'avez pas besoin d'interroger les champs dans les données sérialisées, vous pouvez le stocker dans E.G. un D'autre part, par exemple Pour un cas d'utilisation où vous avez des structures de données variables associées à vos entrées de table principale, que vous devez interroger, vous pouvez utiliser le JSON DataType (disponible depuis MySQL 5.7.8). Le jeu de données JSON n'accepte que des chaînes JSON valides pour l'entrée, et il existe Plusieurs fonctions utiles pour interroger le contenu. p>
Quoi que vous fassiez, ne stockez pas JSON (ou d'autres données sérialisées) dans un champ de texte régulier, puis essayez de la questionner avec varchar code> ou un champ code> code> comme une autre chaîne, et simplement json_encode code> sur le chemin et json_decode code> lors de la lecture il. p>
comme '% "champ": "Valeur"%' code> style hacks. Ils cèdent la misère et finissent par échouer. P>
La réponse rapide est bien sûr oui
Google est votre ami: dev.mysql.com/doc/refman/8.0 /en/json.html