簡體   English   中英

從 json 中提取唯一值的 SQLite 查詢

[英]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.

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