从Postgres字段中的多个值中选择任意一个

Win*_*ail 11 postgresql

我有一张类似于以下内容的表格:

WORD    WEIGHT   WORDTYPE
a       0.3      common
the     0.3      common
gray    1.2      colors
steeple 2        object
Run Code Online (Sandbox Code Playgroud)

我需要立即从数据库中拉出几个不同单词的权重.我可以:

SELECT * FROM word_weight WHERE WORD = 'a' OR WORD = 'steeple' OR WORD='the';
Run Code Online (Sandbox Code Playgroud)

但它感觉很丑,产生查询的代码是令人讨厌的.我希望有一种方法可以做(伪代码):

SELECT * FROM word_weight WHERE WORD = 'a','the';
Run Code Online (Sandbox Code Playgroud)

小智 28

您正在描述in子句的功能.

select * from word_weight where word in ('a', 'steeple', 'the');


Qua*_*noi 9

如果要在单个参数中传递整个列表,请使用array数据类型:

SELECT  *
FROM    word_weight
WHERE   word = ANY('{a,steeple,the}'); -- or ANY('{a,steeple,the}'::TEXT[]) to make explicit array conversion
Run Code Online (Sandbox Code Playgroud)