2017-10-16 39 views
1

嗨,我有一个表“状态”与2列idstring。 我插入一个数据,例如id = 1string = {"1": "Enable", "2": " Disabled"}无法提取查询中的JSON路径

我该如何才能在SQL中获得值“Enable”?

If I type SELECT 
    id, string->"$.1" 
FROM status; 

我有无效的JSON路径表达式。

回答

1

您需要将1用引号括起来,以便将其视为字符串而不是数字。

这些无论是应为你工作:

SELECT id, string->"$.\"1\"" 
FROM status 

或:

SELECT id, string->'$."1"' 
FROM status 
+0

它的工作原理!谢谢! – Gnast973

0

有一个称为json_extract()的功能。 以下查询应该把工作做好:

SELECT 
     id, 
    json_extract(string,'$.1') 
    FROM status; 

编辑:该解决方案将只限于MySQL 5.7或更高版本。

希望它有帮助!

+0

它不工作。就像@Ike Walker说的,我需要用引号将1包裹起来。 – Gnast973

+0

对不起。忘记检查与您的Mysql版本。 –