繁体   English   中英

选择上一行mysql?

[英]Select previous row mysql?

如果我有一个具有主要ID的mysql表和另一个名为gameScore的字段,我可以按照以下方式进行操作...

SELECT gameScore FROM table1 WHERE id = 100 ORDER BY gameScore ASC

这将获得id为100的gameScore,但是我想让mysql按gameScore排序表,然后选择id = 100的上一行,如果可以的话,谢谢...

看起来很有趣-但这也许就是您所追求的。

select max( gameScore )
from table1
where id = 100
and gameScore < ( select max( gameScore ) from table1 where id = 100 )

我建议做一个联合而不是AND(此外,您需要添加LIMIT 1,这样您就不会得到所有小于100的行)

您正在寻找第二低的分数,对吧? 就像克雷格(Craig)提到的那样,限制听起来像是正确的做法:

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的记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM