2016-04-06 10 views
1

これは基本的なもので、既存の回答が見つからない場合は謝罪します。 useridが提供する配列の文字列と一致するdb内の行を選択しようとしています。私が試した方法は次のとおりです。Postgresから列を選択します。列は配列内の任意の文字列に一致します

query_string = "SELECT * FROM data WHERE userid = ANY([qFupLOnc1,bUVMBxum0,FlYYzQz31]) LIMIT 5" 
query_string = "SELECT * FROM data WHERE userid = ANY(['qFupLOnc1','b2VMBxum0','FlYYzQz31']) LIMIT 5" 
query_string = "SELECT * FROM data WHERE userid = ANY(ARRAY['qFupLOnc1','bUVMBxum0','FlYYzQz31']) LIMIT 5" 
query_string = "SELECT * FROM data WHERE userid = ANY(ARRAY[qFupLOnc1,bUVMBxum0,FlYYzQz31]) LIMIT 5" 
query_string = "SELECT * FROM data WHERE userid ANY(ARRAY[qFupLOnc1,bUVMBxum0,FlYYzQz31]) LIMIT 5" 
query_string = "SELECT * FROM data WHERE userid ANY(ARRAY['qFupLOnc1','bUVMBxum0','FlYYzQz31']) LIMIT 5" 
query_string = "SELECT * FROM data WHERE userid ANY(['qFupLOnc1','bUVMBxum0','FlYYzQz31']) LIMIT 5" 
query_string = "SELECT * FROM data WHERE userid ANY([qFupLIOnc1,bU2VMBxum0,FlYYzQz31]) LIMIT 5" 

これらはすべてエラーが返ってきます。これを行う適切な方法は何ですか?

私はそうのようなRパッケージRPostgreSQLを介してデータベースを照会しています:

data = dbGetQuery(con, query_string) 
+0

特にあなたが何を意味するのです」マッチ "?これは平等テストかパターンマッチですか?あなたは 'userid = ANY(ARRAY ['qFupLOnc1'、...'バージョンが見つかるとそれが何であるか)を期待していますか? –

答えて

-1

あなたがINたい:

SELECT * FROM data WHERE userid IN ('...', '...', '...'); 
+0

これは奇妙なことですが、私の質問の範囲を広げて、 Rパッケージを使ってdbに問い合わせる – helloB

+0

psqlシェルからこのクエリを実行するとどうなるでしょうか? –

+0

'c = any(array [x、y])'は 'c in(x 、y) 'これで違いはありません。 –

0

試して、

query_string = "SELECT * FROM data WHERE userid like '%foo%'"; 
+0

配列に対してはどうしたらうまくいくのですか?私は従いません。 – helloB

関連する問題