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

Trích xuất dữ liệu từ json bên trong trường mysql

MySQL đã hỗ trợ JSON trong phiên bản 5.7.7 http://mysqlserverteam.com/json-labs-release-native-json-data-type-and-binary-format/ Bạn sẽ có thể sử dụng hàm jsn_extract để phân tích cú pháp chuỗi JSON của mình một cách hiệu quả.

Nếu bạn có một phiên bản cũ hơn và bạn muốn giải quyết nó hoàn toàn trong mysql thì tôi e rằng bạn phải coi nó như một chuỗi và cắt giá trị ra khỏi nó (chỉ là các hàm chuỗi bình thường hoặc sử dụng biểu thức chính quy) Điều này không thanh lịch nhưng nó sẽ hoạt động

http://sqlfiddle.com/#!9/97cfd/14

SELECT
  DISTINCT(substring(jsonfield, locate('"city":',jsonfield)+8,
     locate('","', jsonfield, locate('"city":',jsonfield))-locate('"city":',jsonfield)-8)
  )
FROM
  ForgeRock


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Homebrew MySQL 8.0.18 trên macOS 10.15 Catalina sẽ không chạy dưới dạng dịch vụ

  2. Phương pháp tốt nhất để xử lý lỗi bằng PDO

  3. Hibernate gửi các truy vấn thừa đến cơ sở dữ liệu

  4. RegEx với preg_match để tìm và thay thế một chuỗi SIMILAR

  5. Làm cách nào để tôi có thể đặt Giá trị mặc định của cột dấu thời gian thành Dấu thời gian hiện tại với Laravel Migrations?