我有一些简单的查询:
SELECT foo, bar FROM table
Run Code Online (Sandbox Code Playgroud)
我想你现在的结果是什么样的.
我想要做的是根据查询结果中显示的数据显示一些序列号.它就像AUTO_INCREMENT
(它不是我想要显示ID).结果我想要的是:
|No| foo | bar |
-------------------------
|1 | bla | 123 |
|2 | boo | abc |
|3 | wow | xxx |
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
提前致谢
bun*_*ito 30
select @rownum:=@rownum+1 No, foo, bar from table, (SELECT @rownum:=0) r;
Run Code Online (Sandbox Code Playgroud)
这两个答案都不适合我,但根据bungdito的来源,我意识到你可以做一些更简单的事情:
SET @a:=0;
SELECT @a:=@a+1 No, foo, bar
FROM table;
Run Code Online (Sandbox Code Playgroud)
所以,首先确保SET @a:=0;
运行。这将设置您的变量 a。然后你可以在结果中增加它@a:=@a+1
。我用 GROUP BY、ORDER BY 甚至 JOINS 测试了这个,它按预期工作。
如果您GROUP BY
在查询中使用子句,则订单会被扰乱.解决方法是将查询放在这样的FROM
子句中.
SET @a:=0;
SELECT @a:=@a+1 No, output.*
FROM (
SELECT foo, bar
FROM table GROUP BY foo, bar
) output;
Run Code Online (Sandbox Code Playgroud)