2017-09-04 3 views

答えて

0

のために2のために、「002」または「02」を見つけるために、クエリを必要

Mytable.where("property::int = ? " , params[:property].to_i) 

の作業を見ていません。

property = params[:property].to_i 
Mytable.where("property LIKE ?", "%#{property}") 
+0

'property = 2'の場合、値が' 123'のレコードが見つかります。 –

+0

はい、正しく、私は自分の答えを編集しました。要件は非常に曖昧なので、それが02か002かXX2かどうかはわかりません。 –

0

まず、テーブルのプロパティの列をインデックスすることを忘れないでください。

また、この質問ではあまり明確ではありません。列には "002"/"02"/"2"の形式のデータがあります。また、 "123"/"213"形式にすることもできます。

そのわずか「002」/「02」/「2」フォーマットした場合は、以下のようにそれを行うことができます。

Mytable.where("property LIKE ?", "%#{params[:property].to_i}") 

それとも、「123」/「213」を含むすべてのフォーマットを仮定した場合を、そして:そもそも数値列でなければなりませんように

Mytable.where("property LIKE ?", "%#{params[:property].to_i}%") 

また、あなたが存在することがparams[:property]パラメータ値を確認したいことがあり、numericalityなど

関連する問題