sql >> Base de Datos >  >> RDS >> Mysql

Consulta SQL de Rails en un número desconocido (dinámico) de consultas usando LIKE

Lo que querrá hacer es pasar una matriz como único argumento a where que contiene tanto la consulta como los valores dinámicos. Por ejemplo:

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

Si se pasa una matriz como el primer y único argumento, el primer elemento de la matriz se trata como una plantilla. Los siguientes valores de matriz se tratan como valores dinámicos para la plantilla de consulta.

Para su ejemplo, en lugar de tener dos variables separadas queries y query , combínelos en una 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)

Esto le permitirá consultar la base de datos con un número desconocido de valores usando LIKE .