簡體   English   中英

Postgres select 表中的行,其中 JSONB 數組中的變量

[英]Postgres select rows from table where variable in JSONB array

我試圖在我的數據庫中獲取行,其中每行都包含 JSONB 列中的值。 到目前為止我所擁有的是

    SELECT *
    FROM users
    WHERE roles @> '[{"type": $2 }]'

Roles 是一個 JSONB 數組,可以有大約 5 個值。

獲得具有“管理員”角色的用戶的最簡單方法是什么。 Postgres 不喜歡 $2,我可以輕松地修改查詢並將值作為字符串插入,但不想增加 SQL 注入攻擊的機會。

您可以使用 jsonb 構建器函數來生成正確的 jsonb 數組; 這允許正確傳遞參數:

select *
from users
where roles @> jsonb_build_array(jsonb_build_object('type', $2))

暫無
暫無

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

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