假设我有一个MySQL查询,例如:
SELECT id, name, surname FROM employees ORDER BY id
结果是:
id name surname 1 Peter Smith 2 John Banjo ... 1384 Will Levenstein
虽然这是一个有序查询,但我始终可以假设(只要不更改表) John Banjo 将获得第二名。
John Banjo
如果我的问题是
SELECT id, name, surname FROM employees WHERE name = 'John' AND surname = 'Banjo'
我能得到第一个查询中的行号吗?
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'