我有一个存储团队的 MYSQL 表。
表结构:
CREATE TABLE teams (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(28) COLLATE utf8_unicode_ci NOT NULL,
UNIQUE KEY id (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;
样本数据:
INSERT INTO
团队VALUES
(1, 'one'),
(2, 'two'),
(3, 'three'),
(4, 'four'),
(5, 'five');
使用:
SELECT id, name, id as rowNumber FROM teams WHERE id = 4
返回正确的 rowNumber,因为在表中它前面确实有三行。但这只有在我不删除一行的情况下才有效。
示例:
假设DELETE FROM teams WHERE id = 3;
我现在使用SELECT id, name, id as rowNumber FROM teams WHERE id = 4
结果是错误的,因为表中现在只有两行(id 的 1 和 2)在它前面。
如何从一个特定行获取按 id 排序的“真实”行号/索引?