在选择查询中显示行号

hd.*_*hd. 3 mysql sql

这个查询有什么问题?它在rowno列中显示为null.

SELECT @rowno:=@rowno+1 `rn`,`id`, `title`, `topic` 
FROM stories,(SELECT @rownum:=0) r 
WHERE newstype='2';
Run Code Online (Sandbox Code Playgroud)

我在'MySQL Query browser'中运行它

提前致谢.

mar*_*cog 7

你有一些问题:

  • 您需要@rowno通过set @rowno = 0在查询之前添加来初始化.
  • 你错过了一个as在.@rowno:=@rowno+1 rn
  • (SELECT @rownum:=0) r是多余的,除非你的意思是初始化,@rowno在这种情况下你会拼错它.

这应该工作:

SET @rowno = 0;
SELECT @rowno:=@rowno+1 as `rn`, `id`, `title`, `topic` 
FROM stories 
WHERE newstype='2';
Run Code Online (Sandbox Code Playgroud)


a_h*_*ame 6

在您使用的增量中,rowno但在您正在使用的初始赋值中rownum