【问题标题】:Get object inside more than one object MYSQL JSON在多个对象MYSQL JSON中获取对象
【发布时间】:2020-10-03 06:08:09
【问题描述】:

如何从 mysql 中的 json 代码中选择“风味”对象内的数组“1”

属性名称:设置

{"without":{"usd":{"new":"5","old":"8"},"weight":"5"},"color":{"2","3"},"flavor":{"1","2"}}

知道这些对象在第一个对象内部并且它们是可变的,也许[“没有”或“长”或......]

属性名称:设置

{"without":{"usd":{"new":"5","old":"8"},"weight":"5"},"color":{"2","3"},"flavor":{["1","2"}}
{"long":{"usd":{"new":"2","old":"3"},"weight":"2"},"medium":{"usd":{"new":"3","old":"4"},"weight":"3"},"short":{"usd":{"new":"4","old":"5"},"weight":"4"}}
{"short":{"usd":{"new":"4","old":"5"},"weight":"2"},"color":{"1","2"}}

喜欢

without = 5
long = 2
short = 4

【问题讨论】:

  • 这些不是数组,而是嵌套在顶层对象内的对象(json数组由[]分隔,对象由@分隔987654325@)。对象键没有特定的顺序,因此没有“第一个”键的概念。这使您的要求不清楚。
  • @GMB 我从数组变成了对象
  • 好的。但是没有“第一个”对象。 JSON 键是无序的。您看到的只是数据的一种表示形式,不保证是一致的。

标签: mysql arrays json laravel json-extract


【解决方案1】:

我重建了数据格式,以便提取所需的数据

{"size":[{"id":1,"url":"without","weight":"5","price":{"usd":{"new":"5","old":"8"}}}],"color":[{"id":"2","url":"yellow"},{"id":"3","url":"green"}],"flavor":[{"id":"1","url":"berry"},{"id":"2","url":"strawberry"}]}

MYSQL

JSON_EXTRACT(details.settings, '$.color[*].url') LIKE '%yellow%'

【讨论】:

  • 是的。现在你使用JSON数组,问题就解决了。
猜你喜欢
  • 2017-04-08
  • 1970-01-01
  • 2019-12-22
  • 2020-10-13
  • 2018-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多