私は、書類を管理する必要があるユーザーを照会する必要があります。 ユーザーには最小および最大フィールドがあり、文書番号の最後の番号がこれらの2つの値の間にある場合、ユーザーは見つかる必要があります。 これは、範囲の作業の間にほとんどのクエリを丸める別の方法です。RubyのActiverecordクエリーを範囲と比較
私はプレーンSQLを使用する必要がある瞬間、次のように動作しますが、私はactiverecordクエリ(最初のエラー)または少なくともより安全なメソッド(2番目のエラー)を使用します。
わかりやすくするために、フィールドの名前を短くしました。
dosnr = 123456
# error invalid identifier
# User.where(dosnr.to_s[-1] => :min..:max)
# error invalid character 6
# User.where("#{dosnr.to_s[-1]} between ? and ?, min, max ")
# sql works
User.where("#{dosnr.to_s[-1]} between min and max ")
sqlを使用せずに、またはすべてのレコードをループすることなく、または複数のwhere文を使用する必要なく、これを行う方法は?
'dosnr'はユーザーテーブルの列ですか?データ型は何ですか?私はactiverecordでこれを行う方法はないと思っていますが、どのSQLを使用していますか? – Surya
dosnrは変数ではなく、sqlは最後の行です – peter
minとmaxは列であり、dosnr変数の最後の整数からすべてのユーザーをb/w minとmaxで見つける必要がありますか? – Surya