Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête SQL Rails sur un nombre inconnu (dynamique) de requêtes utilisant LIKE

Ce que vous voudrez faire est de passer un tableau en tant qu'argument unique à where qui contient à la fois la requête ET les valeurs dynamiques. Par exemple :

where(["att_1 LIKE ? OR att_2 LIKE ?", "value1", "value2"])

Si un tableau est passé comme premier et unique argument, le premier élément du tableau est traité comme un modèle. Les valeurs de tableau suivantes sont traitées comme des valeurs dynamiques pour le modèle de requête.

Pour votre exemple, au lieu d'avoir deux variables distinctes queries et query , combinez-les en une seule query variables :

# A single array with the query AND values
query = ["hobby LIKE ? OR (gender LIKE ? AND hobby LIKE ?)", "skiing", "male", "jogging"]

# Run the `where` with a single array as the argument
YourModel.where(query)

Cela vous permettra d'interroger la base de données avec un nombre inconnu de valeurs en utilisant LIKE .