私はテーブルを持っている、それは "myvalue"と言う列を持つMyTableと呼んでください。MySQL:数値が存在する場合はそれよりも大きい値を取得しますが、存在しない場合は下位値を取得しますか?
myvalueとの比較に基づいて数値を取り、行を返すクエリが必要です。
number = myvalueの場合は、正しい行です。一致するものがなければ、数字のすぐ上の値を取る必要があります。それが存在しない場合は、数値のすぐ下の値を取る必要があります。例えばので
のがmyvalue列がこれらの値ましたとしましょう:これまでのところ、私は右のそれを超えるマッチング値または1のどちらかを返しますクエリを
100
200
300
400
500
If I query with number=50 it will return the row with '100'.
If I query with number=100 it will return the row with '100'.
If I query with number=101 it will return the row with '200'.
If I query with number=450 it will return the row with '500'.
If I query with number=570 it will return the row with '500'.
を持っていますが、私は方法がわかりません上記のものが存在しない場合、下のものを返すようにするには?
これは私が今何をすべきかです:
SELECT * FROM MyTable WHERE myvalue >= 'number' ORDER BY myvalue ASC LIMIT 1
(もちろん価値の '数' を置き換える)
任意のアイデア?私はブルートフォースの方法を考えることができますが、私は考えることができないエレガントなものがあると確信しています。
おかげで、3件の回答のうち、これまでに、これは数は、テーブル内の最大myvalueよりも大きい場合のために働いていた唯一のものです。 – nebs