繁体   English   中英

SQL:其中 (,..,) 中的 json 字段

[英]SQL: where json field in (,..,)

我一直在尝试数十种不同的组合,但都没有成功。
我有一个表policies ,其中一列是id ,一列是created_for ,它本身就是 json。
json 看起来像这样: created_for: {"user_email": "hello@gmail.com", "project_serial": "K8BUADS001="}

现在我想获取project_serial在某些值中的所有id

我尝试了什么:

SELECT p.id 
FROM policies as p 
WHERE JSON_VALUE(created_for, '$.project_serial') IN ('PROJIUHS6W001=', 'U5LQU13BIBN001=')

SELECT p.id 
FROM policies as p 
WHERE JSON_VALUE(created_for, '$.project_serial') IN ("PROJIUHS6W001=', 'U5LQU13BIBN001=")

SELECT p.id 
FROM policies as p 
WHERE created_for->>'$.project_serial' IN ('PROJIUHCHQ62UJ0KSS6W001=', 'PROJPPF4UE5LQU13BIBN001=')

SELECT p.id 
FROM policies as p 
WHERE created_for->>'$.project_serial' IN ("PROJIUHCHQ62UJ0KSS6W001=", "PROJPPF4UE5LQU13BIBN001=")

以及每个参数上的双引号/单引号的任何其他组合。 所有这些都给了我语法错误,我得到了很多: syntax error near unexpected token '(' ,还有其他的,因为我尝试了许多组合。

任何人都知道这样做的正确方法是什么?

这将起作用:

SELECT 
p.id FROM policies as p WHERE  json_extract(created_for, '$.project_serial') IN 
('PROJIUHS6W001=', 'U5LQU13BIBN001=')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM