Mysql
 sql >> Database >  >> RDS >> Mysql

Rails query SQL su un numero sconosciuto (dinamico) di query utilizzando LIKE

Quello che vorrai fare è passare un array come argomento singolo a where che contiene sia la query che i valori dinamici. Ad esempio:

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

Se un array viene passato come primo e unico argomento, il primo elemento dell'array viene trattato come un modello. I seguenti valori di matrice vengono trattati come valori dinamici per il modello di query.

Per il tuo esempio, invece di avere due variabili separate queries e query , combinali in un'unica queries variabile:

# 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)

Ciò ti consentirà di interrogare il DB con un numero sconosciuto di valori utilizzando LIKE .