3

This is basic, and I apologize if I missed the existing answer. I am trying to select rows in a db where the userid matches any string in an array I provide. Here are the methods I've tried:

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"

These all come back with an error. What's the proper way to do this?

I am querying the database via an R package RPostgreSQL like so:

data = dbGetQuery(con, query_string) 
helloB
  • 3,472
  • 10
  • 40
  • 87
  • What specifically do you mean by "matches"? Is this an equality test or a pattern match? What are you expecting the `userid = ANY(ARRAY['qFupLOnc1', ...` version to find and what does it find? – mu is too short Apr 06 '16 at 18:47

2 Answers2

1

try,

 query_string = "SELECT * FROM data WHERE userid like '%foo%'";
Prabhat Sinha
  • 1,500
  • 20
  • 32
0

You want IN:

SELECT * FROM data WHERE userid IN ('...', '...', '...');
Alex Howansky
  • 50,515
  • 8
  • 78
  • 98