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

  • Droid Life

    Droid Life

    17 Kasım 2009
  • NextGenWindows

    NextGenWindo

    8 Kasım 2011
  • trickycharms

    trickycharms

    6 Aralık 2013