首页 > 解决方案 > 使用 Where 子句时如何获取 MySQL 中的实际索引行数

问题描述

我正在处理 Users 表,我在该表上添加了这样的 where 子句:

SELECT F_Name, L_Name FROM Users Where HouseCode = 'ABC';

这将返回所有在其 HouseCode 列中具有 ABC 的用户。但我想要表格行中这些用户的实际索引号或实际行号。

示例:那些拥有HouseCode = 'ABC'行号的用户

10,18,24,77,82

那么如何使用查询来获取这些用户的实际行号或索引呢?

注意:我确实将 id 作为主键,它会自动递增,但有时我必须删除用户。所以不能依赖。

谢谢

编辑:

我明白你想说什么,但让我通过你自己的例子向你解释一下:现在,如果我明天删除 Jason 的第三条记录,那么在实际索引中,ID 为 4 的 Karen 记录实际上将变为第三条,即该记录的真实索引。像这样 :

id     |    F_Name    |     L_Name  | HousecCode
-------------------------------------------------
 1           Mark           Dine         123 
 2           Mary           Codd         ABC
 3          Jason           Trex         ABC
 4          Karen           Port         456
 5           Jan          Hellopei       ABC


INDEX_NO |   id     |    F_Name    |     L_Name  | HousecCode
----------------------------------------------------------------------
 1          1           Mark            Dine            123 
 2          2           Mary            Codd            ABC
 3          4          Karen            Port            456
 4          5           Jan            Hellopei         ABC

因此,当我获取记录时,它应该通过计算它在表中的位置来给我实际的索引。这就是我不能依赖 id 列的原因。

标签: mysqlsql

解决方案


只是为了说明这一点,已经说过:

  • MySQL 等关系数据库引擎没有行号,就像 Excel 工作表那样。

推荐阅读