sql >> Databasteknik >  >> RDS >> Mysql

Rails SQL-fråga på okänt (dynamiskt) antal frågor som använder LIKE

Vad du vill göra är att skicka en array som ett enda argument till where som innehåller både frågan OCH de dynamiska värdena. Till exempel:

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

Om en array skickas som det första och enda argumentet, behandlas det första elementet i arrayen som en mall. Följande matrisvärden behandlas som de dynamiska värdena för frågemallen.

För ditt exempel, istället för att ha två separata variabler queries och query , kombinera dem till en 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)

Detta gör att du kan fråga DB med ett okänt antal värden med LIKE .




  1. MySQL:Hur man hittar löv i specifik nod

  2. Läsning från ström misslyckades - mysql_native_password-fel

  3. Hur kan jag beräkna de högsta % dagliga prisändringarna med MySQL?

  4. Hämtar data från MySQL - endast inloggad användare