如果我有一個MySQL表,有主ID和所謂gameScore我可以做線沿線的一些其他領域......選擇上一行mysql?
SELECT gameScore FROM table1 WHERE id = 100 ORDER BY gameScore ASC
這將得到gameScore的ID爲100,但我想什麼要做的就是讓mysql按照gameScore排序,然後選擇上一行到id = 100的地方,如果這很有意義,謝謝...
如果我有一個MySQL表,有主ID和所謂gameScore我可以做線沿線的一些其他領域......選擇上一行mysql?
SELECT gameScore FROM table1 WHERE id = 100 ORDER BY gameScore ASC
這將得到gameScore的ID爲100,但我想什麼要做的就是讓mysql按照gameScore排序,然後選擇上一行到id = 100的地方,如果這很有意義,謝謝...
看起來很有趣 - 但也許這就是你要做的。
select max(gameScore)
from table1
where id = 100
and gameScore < (select max(gameScore) from table1 where id = 100)
我建議做一個聯盟來代替,並提到(此外,你需要添加LIMIT 1這樣你就不會得到100下的所有行)
您正在尋找第二低的分數,對不對?像克雷格提到,限聽起來像正確的方式去:
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 2012-03-27 16:57:03
然後它應該選擇下一個最高。 – cgwebprojects 2012-03-27 17:01:40