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

  • eHow

    eHow

    27 NİSAN 2006
  • FILIPeeeK

    FILIPeeeK

    22 Mayıs 2006
  • Metheud

    Metheud

    9 EYLÜL 2006