在选择查询中显示行号
Posted
技术标签:
【中文标题】在选择查询中显示行号【英文标题】:show row number in select query 【发布时间】:2011-01-01 09:46:04 【问题描述】:这个查询有什么问题?它在 rowno 列中显示 null。
SELECT @rowno:=@rowno+1 `rn`,`id`, `title`, `topic`
FROM stories,(SELECT @rownum:=0) r
WHERE newstype='2';
我在“mysql 查询浏览器”中运行它
提前致谢。
【问题讨论】:
What is the best way to generate ranks in MYSQL?的可能重复 【参考方案1】:你有几个问题:
您需要通过在查询前添加set @rowno = 0
来初始化@rowno
。
您在@rowno:=@rowno+1 rn
中缺少as
。
(SELECT @rownum:=0) r
是多余的,除非您打算将其作为 @rowno
的初始化,在这种情况下您拼错了。
这应该可行:
SET @rowno = 0;
SELECT @rowno:=@rowno+1 as `rn`, `id`, `title`, `topic`
FROM stories
WHERE newstype='2';
【讨论】:
如果记录按其他字段排序,则此解决方案不起作用【参考方案2】:在增量中您使用rowno
,但在初始分配中您使用rownum
【讨论】:
以上是关于在选择查询中显示行号的主要内容,如果未能解决你的问题,请参考以下文章