使用下面的 MySQL 表:
+-----------------------------+
+ id INT UNSIGNED +
+ name VARCHAR(100) +
+-----------------------------+
当按 name ASC
排序时,如何选择 单身行及其在表中其他行之间的位置。因此,如果表数据看起来像这样,按名称排序:
+-----------------------------+
+ id | name +
+-----------------------------+
+ 5 | Alpha +
+ 7 | Beta +
+ 3 | Delta +
+ ..... +
+ 1 | Zed +
+-----------------------------+
如何选择 Beta
行以获得该行的当前位置?我要寻找的结果集是这样的:
+-----------------------------+
+ id | position | name +
+-----------------------------+
+ 7 | 2 | Beta +
+-----------------------------+
我可以做一个简单的 SELECT * FROM tbl ORDER BY name ASC
,然后枚举 PHP 中的行,但似乎浪费加载一个潜在的大结果集只为一个行。