私は、これは、ID 100のためgameScoreを取得しますが、私が望むものを前の行を選択するmysql?
SELECT gameScore FROM table1 WHERE id = 100 ORDER BY gameScore ASC
主のIDを持っていたMySQLのテーブルとgameScore私はの線に沿って何かを行うことができますと呼ばれる別のフィールドを...持っている場合gameScoreでテーブルを注文してからid = 100の前の行を選択してください。
私は、これは、ID 100のためgameScoreを取得しますが、私が望むものを前の行を選択するmysql?
SELECT gameScore FROM table1 WHERE id = 100 ORDER BY gameScore ASC
主のIDを持っていたMySQLのテーブルとgameScore私はの線に沿って何かを行うことができますと呼ばれる別のフィールドを...持っている場合gameScoreでテーブルを注文してからid = 100の前の行を選択してください。
これは面白いようですが、多分これはあなたの後です。
select max(gameScore)
from table1
where id = 100
and gameScore < (select max(gameScore) from table1 where id = 100)
に言及したラグ機能を私の代わりにとの結合を行うことをお勧め(ほかに、あなたがLIMIT 1を追加する必要があるので、あなたは100の下ですべての行を得ることはありません)
2番目に低いスコアをお探しですか?クレイグは述べたように、制限が行くための正しい方法のように聞こえる:このような
SELECT
gameScore
FROM
table1
WHERE
id = 100
ORDER BY
gameScore ASC
limit 1,1
は何か -
SELECT t1.* FROM table1 t1
JOIN (
SELECT id, MAX(gameScore) gameScore FROM table1
WHERE id = 100 AND gameScore < 50 ORDER BY gameScore
) t2
On t1.id = t2.id AND t1.gameScore = t2.gameScore
私たちは、正確な現在のレコードを選択する必要があり、以前のレコードを検索するには、一例ではそれが持つレコードですid
= 100とgameScore
= 50.
現在と以前の 'gameScore'が等しい場合はどうなりますか? – Devart
次に、次に高いものを選択する必要があります。 – cgwebprojects