NodeJS,MySQL-JSON Stringify-高级查询

时间:2019-11-18 16:12:12

标签: mysql

我在表列中有一个使用JSON.stringify保存的对象,它看起来像这样:

[{
    "id": 1,
    "uID": 10
}, {
    "id": 2,
    "uID": 10
}, {
    "id": 3,
    "uID": 94
}]

我需要一个查询,该查询将检查给定列是否包含值,例如

  • 我希望uID = 10并且id = 2将返回
  • 我希望uID = 10且id = 5不会返回
  • 我希望uID = 10且id = 2,uID = 94且id = 0不会返回它 (因为uID = 94和id = 0不在此处)

3 个答案:

答案 0 :(得分:1)

除非您以编程方式查询可以在其中解析JSON然后执行逻辑的查询,否则我会建议这样的内容:

SELECT * FROM Table WHERE Column LIKE '%"id": 1,"uID": 10%'

LIKE关键字允许我们使用通配符(%),但仍与我们定义的内容完全匹配。

答案 1 :(得分:0)

在中间添加一个通配符,但请注意顺序与该策略有关。

SELECT * FROM Table WHERE Column LIKE '%"id": 1%"id": 2%'

答案 2 :(得分:0)

我也需要它向后工作:]例如我有

[{
    "id": 1,
    "uID": 10
}, {
    "id": 2,
    "uID": 55
}, {
    "id": 3,
    "uID": 94
}]

SELECT * FROM Table WHERE Column LIKE '%"uID": 55%"uID": 94%' <- will be working

SELECT * FROM Table WHERE Column LIKE '%"uID": 94%"uID": 55%' <- will be not working

不能“后退”