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

  • MikeyMacintosh

    MikeyM

    28 Aralık 2009
  • Munchkin the Teddy Bear

    Munchkin the

    30 EYLÜL 2011
  • olinerd

    olinerd

    23 AĞUSTOS 2007