Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL जहां JSON में खाली सरणी है

इसे करने के दो तरीके यहां दिए गए हैं, 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": []} |
+--------------+

मुझे एक और समाधान मिला, जो एक खाली सरणी के लिए कड़ाई से जाँच करने में मदद करता है:

सबसे पहले, देखें कि मेरे पास दो पंक्तियाँ हैं, और एक में एक गैर-रिक्त सरणी है:

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)

अब मैं यह सुनिश्चित करता हूं कि सरणी की लंबाई 0 है, यह पुष्टि करने के तरीके के रूप में कि यह खाली है:

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. MySQL - प्रति थ्रेड नवीनतम विषय कैसे दिखाएं

  2. डायनामिक LIMIT के साथ SQL क्वेरी कैसे लिखें

  3. mysql - स्ट्रिंग्स को कैसे संयोजित करें और स्ट्रिंग्स को डेट में कैसे बदलें?

  4. प्राथमिक कुंजी द्वारा MySQL आदेश

  5. dbFailOnError को CurrentDb में जोड़ना। Execute तालिका को अद्यतन करने में विफल रहता है