你好,我有一个关于mysql json的问题。
DROP TABLE IF EXISTS `db`.`PacJSON`;
CREATE TABLE PacJSON SELECT * FROM PAC;
ALTER TABLE PacJSON ADD COLUMN hc JSON DEFAULT NULL;
UPDATE `db`.`PacJSON`
SET `hc`='[{"estado":"1"},{"descripcion":"name1"},{"estudio": "name2"}, {"url":"name3"},{"idpaciente":"11"},{"idmedico":"6"},{"fecha_hc":"2019-05-2"}]'
WHERE idUsuario=11;
下面的查询返回空值,而它应该返回6。有人能告诉我我做错了什么吗?
SELECT idUsuario,PacJSON.hc ,JSON_UNQUOTE(JSON_EXTRACT(hc ,'$."idmedico"')) AS "idmedico"
FROM PacJson;
谢谢!
1条答案
按热度按时间egmofgnx1#
你的
hc
值包含一个对象数组,因此需要使用一个反映该值的路径,即。$[*].idmedico
. 请注意,路径中不应使用双引号。输出:
请注意,因为
hc
是一个数组,JSON_EXTRACT
也返回一个。如果你知道只有一个idmedico
值,您可以使用JSON_EXTRACT
再次对该结果进行分析,以获得实际数值:输出:
在dbfiddle上演示