我對SQL知之甚少。我的應用程序正在運行Rails 3.0.9。我在我的應用程序的搜索功能,它允許用戶搜索照片,但現在查詢只檢查photo.name
:Rails:MySQL查詢搜索多個屬性的正確方法
where("photos.name LIKE ?", "%#{search}%")
我想它還要檢查photo.description
的比賽。我試過如下:
where("photos.name OR photo.description LIKE ?", "%#{search}%")
這似乎確實在發展工作(我使用SQLite的發展),但一旦在Heroku上,該代碼失敗。什麼是正確的方法來做到這一點?謝謝。
SQL語法應該是'photos.name LIKE? OR photo.description LIKE?'如果你只有'WHERE photos.name',mysql會將'photos.name'轉換爲一個布爾值並且只輸出計算結果爲true的元組。如果在你的調用中添加第二個'?',則可能需要再次添加第三個參數,可能是''%#{search}%「',但我不知道事情如何在軌道中滾動。 – Basti 2012-02-23 03:14:31
謝謝你,這似乎是工作。 (不知道我沒有想到這個!) – 2012-02-23 03:19:41