J'ai une variable str qui contient une chaîne comme The ruby
et il trouvera des résultats basés sur cela.Plusieurs mots dans l'opérateur LIKE sql
User.where('abc LIKE :q OR xyz LIKE :q ', q: "%#{str}%")
Bien qu'il fonctionne bien, je suis coincé sur ce qu'il faut faire si la variable str contient un tableau comme str = [ « La », « rubis »]
je peux courir une boucle mais il va créer plusieurs requêtes et je ne veux pas ça. Peut-il être fait dans le même code?
Je sais que si je dois tester plusieurs mots, alors je dois faire quelque chose comme ça
User.where('abc LIKE :q OR abc LIKE :r OR xyz LIKE :q OR xyz LIKE :r ', q: "%#{str[0]}%", r: "%#{str[1]}%")
Juste par exemple, je l'ai utilisé la valeur 2 dans le tableau, mais en réalité, il pourrait être d'une longueur quelconque.
S'il vous plaît laissez-moi savoir si je fais droit
cela a fonctionné mais existe-t-il un moyen d'éviter de faire plusieurs requêtes? – Raaz
Cela n'exécutera qu'une seule requête, si quelque chose avait été exécuté sur la base de données, mon script aurait commencé à crier à propos de tout parce que ces colonnes n'existent pas sur mon modèle utilisateur. –
désolé vous avez raison. Je peux le voir seulement fait un req. – Raaz