21

次のようなテーブルがあります。

WORD    WEIGHT   WORDTYPE
a       0.3      common
the     0.3      common
gray    1.2      colors
steeple 2        object

一度にデータベースからいくつかの異なる単語の重みを引き出す必要があります。私はそれをできた:

SELECT * FROM word_weight WHERE WORD = 'a' OR WORD = 'steeple' OR WORD='the';

しかし、それは見苦しく、クエリを生成するコードは不快です。(疑似コード)のようなことができる方法があることを願っています:

SELECT * FROM word_weight WHERE WORD = 'a','the';
4

3 に答える 3

47

in 句の機能について説明しています。

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

于 2012-04-24T17:05:26.520 に答える
12

リスト全体を単一のパラメーターで渡したい場合は、配列データ型を使用します。

SELECT  *
FROM    word_weight
WHERE   word = ANY('{a,steeple,the}'); -- or ANY('{a,steeple,the}'::TEXT[]) to make explicit array conversion
于 2012-04-24T17:07:46.523 に答える