Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL 5.7:przekonwertuj prosty JSON_ARRAY na wiersze

Możesz to zrobić w MySQL 8.0 za pomocą JSON_TABLE() :

select r.res from mytable, 
 json_table(mytable.content, '$[*]' columns (res int path '$')) r 
where mytable.id = 1

Testowałem na MySQL 8.0.17 i oto wynik:

+------+
| res  |
+------+
|    3 |
|    4 |
+------+

Jeśli używasz wersji starszej niż MySQL 8.0, masz następujące opcje:

  • Znajdź niewiarygodnie złożone rozwiązanie SQL. Prawie zawsze jest to zły sposób rozwiązania problemu, ponieważ otrzymujesz kod, który jest zbyt drogi w utrzymaniu.
  • Pobierz tablicę JSON bez zmian i rozbij ją w kodzie aplikacji.
  • Znormalizuj swoje dane, aby mieć jedną wartość na wiersz, zamiast używać tablic JSON.

Często znajduję pytania na Stack Overflow dotyczące używania JSON w MySQL, które przekonują mnie, że ta funkcja zrujnowała MySQL. Deweloperzy używają go niewłaściwie. Podoba im się, że ułatwia wstawianie dane częściowo ustrukturyzowane, ale okazało się, że powoduje to zapytanie te dane są zbyt skomplikowane.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Doktryna:O AKTUALIZACJI ZDUPLIKOWANEGO KLUCZA

  2. Używanie MySQL LOAD DATA INFILE z niedrukowalnymi ogranicznikami znaków

  3. Android Studio nie może znaleźć jawnej klasy aktywności

  4. Wyzwalacz MySQL - Przechowywanie SELECT w zmiennej

  5. java - DataSource dla samodzielnej aplikacji - brak serwera aplikacji