हां, आप JSON_EXTRACT() का उपयोग कर सकते हैं।
टेबल बनाएं
mysql> create table DemoTable (
-> Data json
-> );
Query OK, 0 rows affected (0.63 sec)
रिकॉर्ड्स डालें
mysql> insert into DemoTable values('{"Name": "John", "CountryName": "US"}');
Query OK, 1 row affected (0.33 sec)
mysql> insert into DemoTable values('{"Name": "Chris", "CountryName": "UK"}');
Query OK, 1 row affected (0.15 sec)
सभी रिकॉर्ड्स देखें
mysql> select * from DemoTable;
+----------------------------------------+
| Data |
+----------------------------------------+
| {"Name": "John", "CountryName": "US"} |
| {"Name": "Chris", "CountryName": "UK"} |
+----------------------------------------+
2 rows in set (0.01 sec)
JSON ऑब्जेक्ट के मानों का उपयोग करके SELECT करने का क्वेरी
mysql> SELECT * FROM DemoTable WHERE JSON_EXTRACT(Data, '$.CountryName') LIKE '%US%';
आउटपुट:
+---------------------------------------+
| Data |
+---------------------------------------+
| {"Name": "John", "CountryName": "US"} |
+---------------------------------------+
1 row in set (0.00 sec)
मुख्य बिंदु:
JSON_EXTRACT(json_col, '$.path')- JSON पथ से मान निकालता है$- रूट ऑब्जेक्ट$.CountryName- CountryName प्रॉपर्टी- परिणाम JSON मान होता है (उद्धरण सहित), तुलना के लिए
->>ऑपरेटर (अनक्वोटेड) उपयोग करें:Data->>'$.CountryName' = 'US' - MySQL 5.7+ JSON डेटा प्रकार का समर्थन करता है