[英]SQLite query to extract unique values from json
為了在 React Native 中使用,
假設我有一個 SQLite 數據庫表,其中包含 col1 primary、col2。
其中 col1 包含序列號, col2 包含類似的 JSON
col1 : col2
1 : {"id":"id1", "value":"value1"},
2 : {"id":"id2", "value":"value2, value3"},
3 : {"id":"id3", "value":"value4, value5"}
我只想使用 SQLite 查詢提取那些唯一值,我期望的輸出是: ["value1","value2","value3","value4","value"]
你可以用json_extract()
做到這json_extract()
:
select group_concat(json_extract(col2, '$.value'), ', ') result
from tablename
結果:
> result
> -------------------------------------
> value1, value2, value3, value4, value5
或者,如果您希望將結果格式化為 json 數組,請使用json_group_array()
:
select replace(json_group_array(json_extract(col2, '$.value')), ', ', '","') result
from tablename
結果:
> | result |
> | :--------------------------------------------- |
> | ["value1","value2","value3","value4","value5"] |
如果您不能使用JSON1 擴展,那么您可以使用字符串函數來實現:
select group_concat(substr(
col2,
instr(col2, '"value":"') + length('"value":"'),
length(col2) - (instr(col2, '"value":"') + length('"value":"') + 1)
), ', ') result
from tablename
結果:
> result
> -------------------------------------
> value1, value2, value3, value4, value5
請參閱演示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.