我有一个奇怪的问题,那就是当我第一次运行sql命令时,它显示错误的结果,但是当我第二次运行相同的代码时,结果是正确的。
错误的结果是:
预期结果是:
sql命令是:
SELECT srNumber, end_on, start_on, teamEntityId
FROM (
SELECT srNumber, end_on, start_on, teamEntityId,
@lastrow := IF(@sr_Number = srNumber, @lastrow + 1,
IF(@sr_Number := srNumber, 1, 0)) AS lastrow
FROM assign
CROSS JOIN (SELECT @lastrow := 0, @sr_Number = '') AS vars
ORDER By srNumber, assignId DESC) AS t
WHERE t.lastrow = 1 AND t.teamEntityId = '00000168752ac161-02420aff00230001'
最佳答案
在较新的MySQL版本中,需要在使用变量之前对数据进行排序。因此,请替换:
FROM assign
与:
FROM (SELECT a.* FROM assign a ORDER BY srNumber, assignId DESC) a
关于mysql - 第一次后mysql工作正常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55045413/