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

MySQL nơi JSON chứa mảng trống

Đây là hai cách để làm điều đó, thử nghiệm trên MySQL 5.7.24:

mysql 5.7.24> select config from mytable 
  where json_contains(config, cast('[]' as json), '$.tier');
+--------------+
| config       |
+--------------+
| {"tier": []} |
+--------------+

mysql 5.7.24> select config from mytable 
  where json_contains_path(config, 'one', '$.tier');
+--------------+
| config       |
+--------------+
| {"tier": []} |
+--------------+

Tôi đã tìm thấy một giải pháp khác, giúp kiểm tra chặt chẽ mảng trống:

Đầu tiên, hãy xem tôi có hai hàng và một hàng có mảng không trống:

mysql 5.7.24> select config from mytable 
  where json_contains(config, json_array(), '$.tier');
+----------------------------------------+
| config                                 |
+----------------------------------------+
| {"tier": []}                           |
| {"tier": [{"name": "BK", "value": 8}]} |
+----------------------------------------+
2 rows in set (0.00 sec)

Bây giờ tôi đảm bảo rằng độ dài của mảng là 0 như một cách để xác nhận rằng nó đang trống:

mysql 5.7.24> select config from mytable 
  where json_contains(config, json_array(), '$.tier') 
  and json_length(config, '$.tier') = 0; 
+--------------+
| config       |
+--------------+
| {"tier": []} |
+--------------+
1 row in set (0.00 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cách kết nối với cơ sở dữ liệu bên trong vagrant

  2. Node.js lặp lại đồng bộ hoặc lặp qua các câu lệnh không đồng bộ

  3. kết nối java với mysql bằng jdbc trên osx

  4. Làm thế nào để sử dụng nhiều cơ sở dữ liệu bằng php?

  5. cách thay đổi thời gian chờ cho các kết nối liên tục mysql