簡體   English   中英

是否可以使用“LIKE”和 SqlAlchemy 在 JSONB 列表中搜索值?

[英]Is it possible to search a JSONB List for a value using "LIKE" and SqlAlchemy?

例如,如果我有一個 JSONB 列,它存儲為:

["oranges","apples","bananas"]

如果子字符串“app”在列表中,如何使用 LIKE 類型搜索進行檢查?

理想情況下,我希望能夠執行以下操作:

Basket['fruits'].contains_like('%app%')

這可以用 sqlalchemy 實現嗎?

使用此處純 PostgreSQL 答案的靈感,您可以創建以下條件:

from sqlalchemy import exists, func, literal_column

exists().select_from(
  func.jsonb_array_elements_text(Basket['fruits']).alias('fruit')
).where(literal_column('fruit').like('%app%'))

答案提出了性能問題,並可能在特殊情況下添加索引(當您只對以某個值開頭的字符串感興趣時)。 看看這是否適用於您以及您是否遇到性能問題

暫無
暫無

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

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