Da en masse mennesker har stillet dette spørgsmål til mig personligt, tænkte jeg, at jeg ville give dette svar en anden revision. Her er et indhold, der har den komplette SQL med SELECT, Migration og View Creation og en live sql violin (tilgængelighed ikke garanteret for violin) .
Lad os sige, at du har en tabel (navngivet:TBL_JSON) som denne:
ID CITY POPULATION_JSON_DATA
-----------------------------------------------------------------------
1 LONDON {"male" : 2000, "female" : 3000, "other" : 600}
2 NEW YORK {"male" : 4000, "female" : 5000, "other" : 500}
For at vælge hvert json-felt kan du gøre:
SELECT
ID, CITY,
json_extract(POPULATION_JSON_DATA, '$.male') AS POPL_MALE,
json_extract(POPULATION_JSON_DATA, '$.female') AS POPL_FEMALE,
json_extract(POPULATION_JSON_DATA, '$.other') AS POPL_OTHER
FROM TBL_JSON;
hvilket resulterer:
ID CITY POPL_MALE POPL_FEMALE POPL_OTHER
-----------------------------------------------------------------
1 LONDON 2000 3000 600
2 NEW YORK 4000 5000 500
Dette kan være en dyr operation at køre baseret på din datastørrelse og json-kompleksitet. Jeg foreslår, at du bruger det til
- Migration af tabel til opdelt database (Se Appendiks 2-B i hovedtræk)
- Opret i det mindste en visning (Se Appendiks 2-C i hovedtræk)
Pas på:Du kan have json startende med dobbelte anførselstegn (strenget):
"{"male" : 2000, "female" : 3000, "other" : 600}"
Testet med Mysql 5.7 på Ubuntu og Mac OSX Sierra.