假设我有一个包含很多行的数据库表,我想向用户显示这些行。限制输出并制作行页面是有意义的。在 MySQL 中我会这样做:
SELECT * FROM myTable ORDER BY myValue LIMIT 120,10
这将显示从第 120 行开始的 10 行。因此 MySQL 必须在内部使用某种顺序,并相应地对行进行编号。我想显示每一行的行号。如何仅使用 MySQL 访问这些数字?明确地说,我正在寻找这样的东西:
SELECT *,<LIMIT_ROWNO> FROM myTable ORDER BY myValue LIMIT 120,10
我在网上和手册中都看过,但找不到。我更喜欢简单的东西,不使用变量或函数。对此没有预定义的表达式吗?
我可以用 PHP 轻松解决这个问题,但从 MySQL 获取行号会更合乎逻辑。
最佳答案
你不能不使用变量来做到这一点,例如:
SELECT m.*, @rownum := @rownum + 1 as `num`
FROM myTable m, (SELECT @rownum := 120) a
ORDER BY myValue LIMIT 120,10;
关于mysql - 在 MySQL 中使用 LIMIT 时如何轻松获取行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45565537/