簡體   English   中英

sql如何根據json格式字段值到select行?

[英]sql how to select row based on json format field value?

我有一張表格,其中一張表格的格式是 json:

my_table

id  json_field

1   { "to_status": 7, "to_status_name": "In Progress", "role": "admin"}

2   { "to_status": 3, "to_status_name": "Completed", "role": "admin"}

3   { "to_status": 2, "to_status_name": "Completed", "role": "customer"}

我怎樣才能 select 所有“to_status”為 3 或 2 的行?

有朋友可以幫忙嗎?

您可以使用 SELECT * FROM my_table WHERE JSON_EXTRACT(json_field, '$.to_status') IN (3, 2)

或者

SELECT * 從 my_table WHERE json_field->>'$.to_status' IN (3, 2)

到 select 你需要什么。

提取時 Json 值是字符串。 因此,您需要測試字符串值或將to_status提取的值轉換為 integer:

SELECT * FROM my_table WHERE json_field->>'to_status' in ('2','3');
or
SELECT * FROM my_table WHERE (json_field->>'to_status')::int in (2,3);

但是你可以得到相同的結果提取to_status_name

SELECT * FROM my_table WHERE json_field->>'to_status_name' = 'Completed';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM