SELECT c.*, (@row_number:=@row_number+1) AS row_num FROM customers c, (SELECT @row_number:=0) AS t WHERE c.age>20;
在上述代码中,大家通过SELECT语句选择出customers表中年龄大于20的数据列c,同时通过(@row_number:=@row_number+1)这个语句来生成row_num这个列,它是一个表达式,每执行一次SELECT查询就自动加一。
这里选择了两个表,一个是大家要查询的customers表和一个临时表t。在MySQL中,由于未明确指定顺序,SELECT语句的查询结果可能以任意顺序返回。为了确保正确的行号,大家需要在FROM子句中使用子查询,强制MySQL先执行t表中的语句,最终返回结果会按照大家指定的顺序显示。
这样,大家就可以很方便地实现MySQL数据库的分页查询行号功能了!