Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL tempat JSON berisi array kosong

Berikut adalah dua cara untuk melakukannya, pengujian pada 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": []} |
+--------------+

Saya menemukan solusi lain, yang membantu memeriksa secara ketat untuk array kosong:

Pertama, lihat bahwa saya memiliki dua baris, dan satu memiliki array yang tidak kosong:

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)

Sekarang saya memastikan bahwa panjang array adalah 0 sebagai cara untuk memastikan bahwa array tersebut kosong:

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. Permintaan MYSQL untuk mencari melalui SEMUA bidang?

  2. Bagaimana menemukan perbedaan antara dua tabel MySQL menggunakan pernyataan MySQL?

  3. Pilih item X dari setiap jenis

  4. pembaruan mysql dengan regexp

  5. MySQLIntegrityConstraintViolationException untuk Hibernate menghapus hsql. Tidak dapat menghapus atau memperbarui baris induk