假设我有一个MySQL查询,例如:
SELECT id, name, surname FROM employees ORDER BY id
结果应该是:
id name surname
1 Peter Smith
2 John Banjo
...
1384 Will Levenstein
虽然这是一个有序的查询,但我总是可以假设(只要我不更改表格)John Banjo
将会出现在第二位。
现在如果我的查询是
怎么办?SELECT id, name, surname FROM employees WHERE name = 'John' AND surname = 'Banjo'
我可以以某种方式得到第一个查询中的行号吗? 我试图在一个更复杂但总是有序的查询中做到这一点,有什么方法可以实现这个目标吗?
答案 0 :(得分:2)
SELECT x.id, x.name, x.surname, x.rownum
FROM (
SELECT @rownum:=@rownum+1 rownum, t.*
FROM (SELECT @rownum:=0) r, employees t
ORDER BY Id
) x
WHERE x.name = 'John'
AND x.surname = 'Banjo'