如果数字将用于除带数字的项目的简单有序显示之外的其他任何内容,则我同意 不
使用这样的编号方案的评论。如果数字实际上要与某物联系在一起,那么这是一个非常糟糕的主意!
使用一个变量,并在
SELECt语句中增加它:
SELECT id, (@row:=@row+1) AS rowFROM table,(SELECt @row:=0) AS row_count;
例子:
CREATE TABLE `table1` ( `id` int(11) NOT NULL auto_increment, PRIMARY KEY (`id`)) ENGINE=InnoDBINSERT INTO table1 VALUES (24), (87), (112);SELECT id, (@row:=@row+1) AS rowFROM table1,(SELECt @row:=0) AS row_count;+-----+------+| id | row |+-----+------+| 24 | 1 || 87 | 2 || 112 | 3 |+-----+------+
怎么运行的
@row是用户定义的变量。必须在主
SELECT语句运行之前将其设置为零。可以这样完成:
SELECT @row:=0;
或像这样:
SET @row:=0
但是将这两个语句结合在一起很方便。这可以通过创建派生表来完成,这是在这里发生的:
FROM table,(SELECT @row:=0) AS row_count;
第二个
SELECT实际上首先运行。一旦完成,这只是增加
@row检索到的每一行的值的一种情况:
@row:=@row+1
@row每次检索行时,该值都会增加。无论访问行的顺序如何,它始终会生成一个顺序的数字列表。因此,对某些事情来说很方便,而对其他事情来说很危险…
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)