如何为Mysql 5.7选择具有这种结构的json列

问题描述 投票:0回答:1

我在mysql5.7数据库表中有一个具有以下属性的产品表产品

  • id:整数
  • 属性:Json类型
  • 价格

我插入了以下记录:

INSERT INTO `products` (`id`, `attributes`, `name`, `cost_price`,
`selling_price`) VALUES (NULL, '{\"size\": [{\"value\": \"M\"},
{\"value\": \"L\"}], \"test\": 1, \"color\": [\"black\", \"maroon\",
\"orange\"]}', 'P2', '10', '20');

这里是该列的json值:

{“大小”:[{“值”:“ M”},{“值”:“ L”}],“测试”:1,“颜色”:[“黑色”,“栗色”,“橙色”]}

我如何获取大小为L的数据记录?如何在Mysql中执行SQL查询?我试过了,它不起作用:

SELECT * FROM `products` where attributes->>'$.size[*].value'='M'

希望有人可以帮助我理解,因为我很不了解mysql中的Json结构。在此先感谢

mysql json select mysql-5.7
1个回答
0
投票

我设法解决了这个问题,我相信这是一个可能的查询:

select * from products where json_contains(attributes, '{"size":{"value" : "XL"}}');
© www.soinside.com 2019 - 2024. All rights reserved.