Description:
mysql> CREATE TABLE t (c1 INT, c2 JSON);
Query OK, 0 rows affected (0.07 sec)
mysql> insert into t values (1,JSON_OBJECT('empno','1001','ename','jack'));
Query OK, 1 row affected (0.06 sec)
mysql> insert into t values (2,JSON_OBJECT('empno','1002','ename','mark'));
Query OK, 1 row affected (0.03 sec)
mysql> select * from t;
+------+------------------------------------+
| c1 | c2 |
+------+------------------------------------+
| 1 | {"empno": "1001", "ename": "jack"} |
| 2 | {"empno": "1002", "ename": "mark"} |
+------+------------------------------------+
2 rows in set (0.01 sec)
mysql> select c2->'$.ename',JSON_UNQUOTE(c2->'$.ename'),c2->>'$.empno' from t;
+---------------+-----------------------------+----------------+
| c2->'$.ename' | JSON_UNQUOTE(c2->'$.ename') | c2->>'$.empno' |
+---------------+-----------------------------+----------------+
| "jack" | jack | 1001 |
| "mark" | mark | 1002 |
+---------------+-----------------------------+----------------+
2 rows in set (0.00 sec)
mysql> select c2->'$.ename',JSON_UNQUOTE(c2->'$.ename'),c2->>'$.name' from t;
+---------------+-----------------------------+---------------+
| c2->'$.ename' | JSON_UNQUOTE(c2->'$.ename') | c2->>'$.name' |
+---------------+-----------------------------+---------------+
| "jack" | jack | NULL |
| "mark" | mark | NULL |
+---------------+-----------------------------+---------------+
2 rows in set (0.00 sec)
why i got "NULL" when using c2->>'$.name',Accroding to the official document states,
the following three expressions return the same value:
JSON_UNQUOTE( JSON_EXTRACT(column, path) )
JSON_UNQUOTE(column -> path)
column->>path
https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html
Tks
How to repeat:
As stated above