Myślę, że możesz to osiągnąć tylko w Mysql 5.7.
W wersji 5.7 możesz zrobić coś takiego:
SELECT JSON_EXTRACT(json_field, '$.name');
i wyodrębni tylko klucz nazwy z obiektu json.
Przeszukaj wszystkie elementy z tagiem „JavaScript”:
SELECT * FROM `table` WHERE JSON_CONTAINS(json_field, '["JavaScript"]');
Znajdź wszystkie elementy z tagami zaczynającymi się od „Java”:
SELECT * FROM `table` WHERE JSON_SEARCH(json_field, 'one', 'Java%') IS NOT NULL;
użyj 'jeden', aby znaleźć pierwsze dopasowanie lub 'wszystkie', aby znaleźć wszystkie dopasowania
Pseudonim Twittera możesz wyodrębnić za pomocą ścieżki JSON:
SELECT name, json_field->"$.twitter" AS `twitter` FROM `user`;
Możesz również odwołać się do ścieżki JSON w klauzuli WHERE, aby zwrócić tylko użytkowników z kontem na Twitterze:
SELECT name, profile->"$.twitter" AS `twitter` FROM `user` WHERE profile->"$.twitter" IS NOT NULL;
Możesz zrobić więcej rzeczy, takich jak:
-
Tworzenie wartości JSON
-
Normalizacja, scalanie i automatyczne zawijanie wartości JSON
-
Wyszukiwanie i modyfikowanie wartości JSON
-
Porównanie i kolejność wartości JSON
-
Agregacja wartości JSON
Więcej informacji można znaleźć na stronie:https://dev.mysql. com/doc/refman/5.7/en/json.html