将连续的伪行号分配给 SELECT 返回的结果
Assigning contiguous pseudo row numbers to results returned by SELECT
我们有一个 table 和一个 AUTO_INCREMENT,INT UNSIGNED 索引字段。随着时间的推移,条目已从 table 中删除,在 table 中创建了“漏洞”。过去我们将条目从 table 复制到另一个 table,没有索引字段,删除前者 table 并将后者重命名为前者。
最近我们采用了这个方案:
SET @row_number = 0;
SELECT *, (@row_number:=@row_number + 1) AS pseudo_row_num FROM myTable;
除了我们希望将伪行号显示为第一列外,这工作得很好。
下面给出了一个MySQL语法错误:
SET @row_number = 0;
SELECT (@row_number:=@row_number + 1) AS pseudo_row_num, * FROM myTable;
MySqls 解析器需要其他东西,因此将 table
命名为
SET @row_number = 0;
SELECT (@row_number:=@row_number + 1) AS pseudo_row_num,mytable.* FROM myTable;
我们有一个 table 和一个 AUTO_INCREMENT,INT UNSIGNED 索引字段。随着时间的推移,条目已从 table 中删除,在 table 中创建了“漏洞”。过去我们将条目从 table 复制到另一个 table,没有索引字段,删除前者 table 并将后者重命名为前者。
最近我们采用了这个方案:
SET @row_number = 0;
SELECT *, (@row_number:=@row_number + 1) AS pseudo_row_num FROM myTable;
除了我们希望将伪行号显示为第一列外,这工作得很好。
下面给出了一个MySQL语法错误:
SET @row_number = 0;
SELECT (@row_number:=@row_number + 1) AS pseudo_row_num, * FROM myTable;
MySqls 解析器需要其他东西,因此将 table
命名为SET @row_number = 0;
SELECT (@row_number:=@row_number + 1) AS pseudo_row_num,mytable.* FROM myTable;