一招解决oracle生成序号、mysql生成序号、layui生成序号问题。解决1054 - Unknown column rownum in where clause,mysql1054问题

项目场景:

项目从oracle11迁移到mysql5.7,在列表展示上,出现了问题。


问题描述

因为oracle语法中有rownum函数,但mysql没有。这导致做出的列表序号为空。

> 1054 - Unknown column 'rownum' in 'where clause'
> 时间: 0s
 

解决方案:

一、在oracle环境中的生成可分页的序号解决方案,很简单。

SELECT rownum as 序号 FROM 表名 

二、在mysql中生成可分页的序号解决方案:

select convert((@i:=@i+1),SIGNED) as 序号  from 表名 ,(select @i:=0)t

二、如果用的layui,直接添加下面这个参数就可以了。分页也是有的。

  type:'numbers'

结果可以看到,第二页也是正常的。

在解决Oracle、MySQL以及Layui生成序号的问题时,我们需要分别考虑它们各自的特点。对于Oracle,我们通常使用ROWNUMROW_NUMBER()函数来生成序号。但需要注意的是,ROWNUM是一个伪列,它只在查询结果返回前有效,因此不能在WHERE子句中使用它,否则会出现1054错误。解决这个问题的方法是使用子查询或者将ROWNUMROW_NUMBER()结合使用。

MySQL中则没有ROWNUM,而是使用LIMITOFFSET进行分页,或者使用用户定义的变量来生成序号。当需要在查询结果中显示序号时,可以在查询中添加一个变量,并在SELECT语句中递增这个变量。

至于Layui,它是一个前端UI框架,生成序号通常是在前端JavaScript代码中实现的。可以通过遍历数据列表,为每个元素添加一个序号属性来实现。

综上所述,虽然不同系统和框架生成序号的方法各异,但都可以通过理解和利用它们各自的特性和功能来实现。对于错误代码1054,关键是要理解其背后的原因,并根据具体情况选择合适的解决方法。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值