- 13.03.16 06:36 •
- Helldar •
- # 279155
- Habrahabr •
- Traducere •
- 18 •
- 8100
- la fel ca Forbes, doar mai bine.
În acest post vom explora tipul de date JSON în MySQL 5.7 și în timpul scufundării vom folosi cadrul Laravel pentru a construi interogări.
Mai întâi, creați o nouă tabelă:
Și adăugați câteva valori:
Citiți valorile JSON
Putem citi valorile coloanei JSON folosind o sintaxă simplă:
Obținem următorul rezultat:
Așa cum ați observat, rezultatele sunt sub forma unui șir în format JSON, ceea ce înseamnă că trebuie să le decodificați înainte de a le afișa.
Despre sintaxa
Executarea cererilor în format JSON se face prin operatorul "->", în partea stângă, plasându-se numele coloanei operator, iar în dreapta este sintaxa căii.
Pentru a reprezenta un document într-un format JSON cu un selector ulterior, sintaxa PATH folosește $ leading pentru a indica anumite părți ale documentului. Iată câteva modalități de extragere a datelor:
- specificații -> "culorile $" vor întoarce o serie de culori
- specificații -> "$ .color [0]" va returna șirul JSON "negru"
- specificații -> "$. non_existing" va reveni la NULL
- specificații -> "$." nume cheie cu spațiu "" dacă cheia conține spații
Dacă cheia nu este un identificator ECMAScript valid. trebuie să fie închis în citate în interiorul căii.
Folosind substituții
De asemenea, puteți utiliza o mască pentru a interoga valorile JSON. Să presupunem că avem următoarele date:
Valoarea interogării în format JSON
Aceasta funcționează la fel ca în coloanele normale MySQL. Acum că știm cum să scriem calea corectă pentru interogarea și / sau sortarea valorilor în format JSON, să aruncăm o privire asupra câtorva exemple:
Tipul de date JSON din MySQL și cadrul Laravel
Dacă utilizați versiunea cadru Laravel 5.2.23 sau o versiune superioară, veți putea folosi în mod liber designerul interogării pentru a genera o interogare în format JSON:
Dacă nu, atunci trebuie să utilizați ** RAW **:
În multe cazuri, dezvoltatorii preferă baze de date NoSQL pentru caracteristici specifice, flexibilitate și / sau de performanță, dar baza de date SQL sunt preferate, și o mulțime de companii mari se bazează pe ele în dezvoltarea aplicațiilor web productive, folosind o grămadă de MySQL + (Mongo | Redis | etc), dar acest lucru adauga complexitatea stiva. Odată cu introducerea tipului de date JSON în MySQL, acesta a devenit un fel de bază de date SQL-NoSQL hibrid.
De la traducător
În exemple, în cazul în care "pomii de Crăciun" sunt vizibile - aveți nevoie pentru a pune "citate". Este Habr care le procesează.