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

Rails SQL-forespørgsel på ukendt (dynamisk) antal forespørgsler, der bruger LIKE

Det, du vil gøre, er at sende et array som et enkelt argument til where som indeholder både forespørgslen OG de dynamiske værdier. For eksempel:

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

Hvis et array sendes som det første og eneste argument, behandles det første element i arrayet som en skabelon. Følgende matrixværdier behandles som de dynamiske værdier for forespørgselsskabelonen.

For dit eksempel, i stedet for at have to separate variabler queries og query , kombinere dem til én query variabel:

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

Dette giver dig mulighed for at forespørge databasen med et ukendt antal værdier ved hjælp af LIKE .




  1. HVIS FINDER tilstand, der ikke fungerer med PLSQL

  2. Vælg databaser dynamisk

  3. Oracle 10g accepterer 5-cifret årstal i en Dato

  4. 3 måder at liste alle lagrede procedurer i en PostgreSQL-database