以下查询有什么问题。
SELECT *
FROM contract
WHERE application_id="abcdef"
AND JSON_CONTAINS(contract_details, '{"name":"~!@#$$%%^&*())_+?><,./:\";\'{}||}{"}');
我收到如下错误。
SELECT * FROM contract where application_id="abcdef" and JSON_CONTAINS(contract_details, '{"name":"~!@#$$%%^&*())_+?><,./:\";\'{}||}{\"}')
LIMIT 0, 10000 Error Code: 3141. Invalid JSON text in argument 2 to function json_contains: "Missing a comma or '}' after an object member." at position 34. 0.234 sec
我有一个包含 Json 对象数组的列,我想根据名称及其值选择记录
JSON 确实无效。
mysql> select json_valid('{"name":"~!@#$$%%^&*())_+?><,./:\";\'{}||}{\"}') valid;
+-------+
| valid |
+-------+
| 0 |
+-------+
如果您需要在 SQL 字符串中使用文字反斜杠,则需要使用双反斜杠。
mysql> select json_valid('{"name":"~!@#$$%%^&*())_+?><,./:\\";\'{}||}{\"}') valid;
^
+-------+
| valid |
+-------+
| 1 |
+-------+