2012-02-23 4 views
0

私はSQLについてほとんど知っていません。私のアプリはRails 3.0.9を実行しています。私は、ユーザーが写真を検索することができます私のアプリでは検索機能を持っていますが、今のクエリにのみphoto.nameをチェックします:Rails:複数の属性を検索するMySQLクエリの適切な方法

where("photos.name LIKE ?", "%#{search}%") 

私はそれも一致するphoto.descriptionをチェックしたいと思います。 (私は開発中のSQLiteを使用)、実際の開発で動作するように見えたこと

where("photos.name OR photo.description LIKE ?", "%#{search}%") 

が、一度Herokuの上で、このコードは失敗しました:私は、次のことを試してみました。これを行う適切な方法は何ですか?ありがとう。

+2

SQL構文は 'photos.name LIKEですか? OR photo.description LIKE? 'WHERE photos.name'があれば、mysqlは' photos.name'をブール値に変換し、真と評価するタプルだけを出力します。 2番目の '?'をw​​here-callに追加すると、3番目の引数、おそらく '"%#{search}% "'を追加する必要があるかもしれませんが、 – Basti

+0

ありがとう、これは動作しているようです。 (私がこれについて考えなかったことは確かではありません!) –

答えて

1

あなたはHerokuのではないのmySQLのPostgresを使用しています。この

where("photos.name LIKE ? OR photo.description LIKE ?", "%#{search}%", "%#{search}%") 
0

が、一度Herokuの

を試すことができます - あなたはあなたのアプリケーションにMySQLを提供するために、MySQLのアドオンを使用していますか?構文は、異なるDB間で異なる場合があります。使用するDBに対して開発することをお勧めします。

関連する問題