SORU
13 Aralık 2010, PAZARTESİ


Nasıl Öncesinde ve Raylar GİBİ bir sorgu yapmak?

Gibi bir şey yapmak istiyorum:

SELECT * FROM USER WHERE NAME LIKE '%Smith%';

Öncesinde benim girişimi:

# params[:query] = 'Smith'
User.where("name like '%?%'", params[:query]).to_sql

Ancak, bu olur:

SELECT * FROM USER WHERE NAME LIKE '%'Smith'%';

Öncesinde sorgu dizesi 'Smith' bu işe yaramıyor GİBİ bir ifadedir. çünkü doğru, ama sarar

Nasıl bir Öncesinde GİBİ bir sorgu yapar?

S. S. Bonus--aslında masada iki alan tarama için çalışıyorum, hem de adını ve varsa eğer orada görmek açıklaması bu sorgu eşleşir. Nasıl oluyor bu iş?

CEVAP
13 Aralık 2010, PAZARTESİ


Deneyin

User.where("name like ?", "%#{params[:query]}%").to_sql

PS.

q = "%#{params[:query]}%"
User.where("name like ? or description like ?", q, q).to_sql

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BiGSH0TROB

    BiGSH0TROB

    7 NİSAN 2011
  • Cristina Landa

    Cristina Lan

    28 Ocak 2010
  • warningthepeople

    warningthepe

    21 EYLÜL 2011