簡體   English   中英

如何過濾 Postgresql 中的 JSON 列?

[英]How can I filter JSON column in Postgresql?

假設我們有簡單的表格,

  • id - 用戶 ID
  • rooms - 用戶在 JSON 類型中搜索的房間數。
id rooms
1 ["3.0","4.0"]
2 ["3.0"]
3 ["1.0"]

如何過濾例如正在搜索 3 個房間的用戶 ID?

我知道這樣的代碼:

SELECT
    id
FROM 
    example_column
WHERE
rooms::text LIKE '%3.0%'

正在工作,但我正在尋找更溫和的方法。

你可以使用“存在” ? 運算符來測試數組中的元素:

SELECT id
FROM the_table
WHERE rooms ? '3.0';

該運算符僅適用於jsonb值,如果您真的使用json列,則需要對其進行轉換:

WHERE rooms::jsonb ? '3.0';

暫無
暫無

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

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