【问题标题】:mysql - how to use a json array inside an INmysql - 如何在 IN 中使用 json 数组
【发布时间】:2017-08-20 17:37:56
【问题描述】:

我有一张表,其中有一个名为 relatedJSON 列。我用它来存储和排列,现在我想在IN 中使用这个数组。我该怎么做?

例如SELECT * FROM products WHERE id IN (select related FROM products WHERE id = 1);

SELECT related FROM products 返回[1,2,3]

【问题讨论】:

  • 我认为这可能表明存在基本的数据库设计错误。
  • 创建一个返回表的自定义函数。以该json字段作为输入。随后在您的位置使用它。
  • products表中related的列数据类型是什么?
  • @Simulant JSON

标签: mysql arrays json


【解决方案1】:

你可以使用函数

更新 2:(已测试):

SELECT
`id`,
`related`
 FROM
`products`
 WHERE
    JSON_SEARCH((SELECT `related` FROM `products` WHERE `id` = 4) ,'one', `id`)
             IS NOT NULL;

看到这个(更新):https://www.db-fiddle.com/f/5ESH1X9qjB46GAzG6DkdfJ/1

另见:

https://benjaminlistwon.com/blog/working-with-json-data-in-mysql-part-1-of-3/

【讨论】:

  • 参数 2 中 JSON 数据的数据类型无效...需要 JSON 字符串或 JSON 类型。
  • 查看我制作的新 SQL 小提琴。这将表明上述功能将起作用。
  • 我认为您错过了我想要做的事情 - 即从产品表中获取所有数据,其中 id 包含在一行的 json 列中。例如获取相关的所有数据,其中 id = 1
  • 我明白你的意思。我已经更新了小提琴和代码。似乎正是您所需要的。
猜你喜欢
  • 2017-01-18
  • 1970-01-01
  • 2016-11-20
  • 2020-07-19
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 1970-01-01
相关资源
最近更新 更多