【问题标题】: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 查询浏览器”中运行它

提前致谢。

【问题讨论】:

标签: mysql sql


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 2011-03-24
    相关资源
    最近更新 更多