Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL 5.7:chuyển đổi JSON_ARRAY đơn giản thành các hàng

Bạn có thể thực hiện việc này trong MySQL 8.0 với JSON_TABLE () :

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

Tôi đã thử nghiệm trên MySQL 8.0.17 và đây là kết quả:

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

Nếu bạn sử dụng phiên bản cũ hơn MySQL 8.0, bạn có các tùy chọn sau:

  • Tìm một số giải pháp SQL phức tạp đến không tưởng. Đây hầu như luôn là cách sai để giải quyết vấn đề, vì bạn sẽ nhận được mã quá đắt để duy trì.
  • Tìm nạp mảng JSON như hiện tại và khai thác nó trong mã ứng dụng.
  • Chuẩn hóa dữ liệu của bạn để bạn có một giá trị trên mỗi hàng, thay vì sử dụng mảng JSON.

Tôi thường tìm thấy câu hỏi trên Stack Overflow về việc sử dụng JSON trong MySQL thuyết phục tôi rằng tính năng này đã phá hỏng MySQL. Các nhà phát triển tiếp tục sử dụng nó một cách không thích hợp. Họ thích rằng nó giúp dễ dàng chèn dữ liệu bán cấu trúc, nhưng họ thấy rằng nó tạo ra truy vấn dữ liệu đó quá phức tạp.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP:Cách nhanh nhất để truy vấn MySQL là gì? Bởi vì PDO rất chậm

  2. mysql pivoting - làm cách nào để tôi có thể tìm nạp dữ liệu từ cùng một bảng vào các cột khác nhau?

  3. MySQL 8.0 Phương thức xác thực được yêu cầu không xác định đối với máy khách (caching_sha2_password)

  4. Nhận chênh lệch năm giữa hai ngày trong MySQL dưới dạng số nguyên

  5. ASP.NET API:Không có nhà cung cấp cơ sở dữ liệu nào được định cấu hình cho DbContext này