我尝试将 MariaDB 与 JSON 一起使用。
CREATE TABLE t (j LONGTEXT);
INSERT INTO t (j) VALUES ('{"a":"1"}');
INSERT INTO t (j) VALUES ('{"a":"2"}');
SELECT * FROM t WHERE JSON_VALUE(j,'$.a') = "1";
+-----------+
| j |
+-----------+
| {"a":"1"} |
+-----------+
SELECT * FROM t WHERE JSON_VALUE(j,'$.a') = "2";
+-----------+
| j |
+-----------+
| {"a":"2"} |
+-----------+
从这里开始,它就像一个魅力。
但现在我没想到会这样。
SELECT JSON_QUERY(j, "$.a") AS a FROM t;
+------+
| a |
+------+
| NULL |
| NULL |
+------+
我期望得到这样的结果。
+------+
| a |
+------+
| "1" |
| "2" |
+------+
我哪里错了??
JSON_VALUE
返回标量值,同时JSON_QUERY
返回对象或数组:但是,如果值是对象或数组,它们将按原样返回: