2012-09-27 5 views
2

donné une chaîne de courriels comme:Comment faire une requête en utilisant IN pour faire correspondre les emails?

emails = "[email protected], [email protected], [email protected], [email protected]" 

Avec une requête, je voudrais revenir tous les Items correspondants de l'utilisateur où:

User.rb (id,email) 

Voici ma requête, mais il ne revient pas si J'ai des e-mails mis à plus d'un e-mail:

User.where("email IN (?)", emails) 
    User Load (1.0ms) SELECT "users".* FROM "users" WHERE (users.deleted_at IS NULL) AND (email IN ('[email protected],, [email protected], [email protected], [email protected]')) 
=> [] 

Suggestions sur la façon de mettre à jour cette requête User.where pour obtenir tous les utilisateurs correspondant à des e-mails fournis? Je vous remercie.

+0

Ajout postgresql comme une balise qui est comme la base de données que je utilise avec des rails. – Sarahpre

Répondre

0

D'abord, tournez la emails dans un tableau:

emails = "[email protected], [email protected], [email protected], [email protected]".split(', ') 

vous pouvez appeler:

User.where(:email => emails) 
+0

Merci, un moyen d'inverser cette situation où les utilisateurs ne sont pas dans le tableau des courriels? Merci – Sarahpre

+1

User.where ("email PAS DANS (?)", Emails) – gylaz

+1

Cela aurait dû marcher. Avez-vous pensé à convertir les emails en Array en premier? – gylaz

Questions connexes