如果專案存在于陣列中,我想添加一個where條件,如何制作這個條件陳述句?
SELECT
*
FROM
table
WHERE
id = 'XX'
AND
tag in {'one', 'two', 'three'};
uj5u.com熱心網友回復:
您快到了!只需替換{為(.
讓我們先通過創建表來測驗:
create table test(
id varchar(2),
tag varchar(10)
);
插入一些值:
insert into test(id, tag) values ('XX', 'one'), ('YY', 'two'), ('XX', 'three'), ('XX', 'four');
執行您的查詢:
SELECT
*
FROM
test
WHERE
id = 'XX'
AND
tag in ('one', 'two', 'three');
您應該會看到如下結果:
id|tag |
-- -----
XX|one |
XX|three|
uj5u.com熱心網友回復:
有多種方法,具體取決于您要做什么以及要查詢的列是什么型別:字串、整數、列舉、json...
基本上我只使用了in (...)符號,但我也找到了使用any方法。
如果你的列 ( myColumn) 是一個陣列,你可以使用這個
SELECT * FROM myTable
WHERE 'myStringValue/enum' = ANY (myColumn)
但是如果你的列 ( myColumn) 不是陣列(標量),你可以使用這個
SELECT * FROM myTable
WHERE myColumn IN (...values)
自己閱讀的一些參考資料:https : //www.postgresql.org/docs/14/arrays.html#ARRAYS-SEARCHING和https://www.postgresql.org/docs/14/functions-comparisons.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/326839.html
標籤:PostgreSQL
