Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consulta Rails SQL em número desconhecido (dinâmico) de consultas usando LIKE


O que você vai querer fazer é passar um array como um único argumento para where que contém a consulta E os valores dinâmicos. Por exemplo:
where(["att_1 LIKE ? OR att_2 LIKE ?", "value1", "value2"])

Se uma matriz for passada como o primeiro e único argumento, o primeiro elemento da matriz será tratado como um modelo. Os seguintes valores de matriz são tratados como valores dinâmicos para o modelo de consulta.

Para o seu exemplo, em vez de ter duas variáveis ​​separadas queries e query , combine-os em uma query variável:
# 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)

Isso permitirá que você consulte o banco de dados com um número desconhecido de valores usando LIKE .