界说一个变量替代rownumITeye - 众发娱乐

界说一个变量替代rownumITeye

2019年03月13日13时33分07秒 | 作者: 盼香 | 标签: 变量,处理,时分 | 浏览: 2094

转自ystyaoshengting的专栏

在查询数据库的时分,咱们有时分需求对查询出来的数据加上序列,1,2,3,……n

例如:咱们依据表的某个字段排序后,要对这些数据加上序列,这个时分序号常常不是咱们建表时设置好的自增的主键id,怎么办呢????

或许咱们会用变量来处理,如下

set @rownum=0;

SELECT @rownum:=@rownum+1 as rownum, table_name.*
FROM  table_name


如果在数据库中要用一句SQL句子来完成,这又改怎么办呢????

oracle数据库有专门的rownum来处理伪序列问题,可是mysql却到目前为止还没有内置的函数等来处理此问题

这个问题也困扰了我一段时间,到各种论坛上发帖也没有能答复,最终在无意间找到了这种处理办法


SELECT @rownum:=@rownum+1 AS rownum, table_name.*
FROM (SELECT @rownum:=0) r, table_name

把rownum的设置初值放到了from 和需求查询的表的前面

原文来自“老鸟的大心脏”,在这里谢谢他。

期望能协助更多需求协助的人……

也期望更多的高手们提出更多的美丽的办法……

或许有人也会用到存储进程来处理,那也是一个办法,我从前也用过,可是后来不能用存储进程了,就悲惨剧了

转自ystyaoshengting的专栏
-
这个办法的欠好之处就是每次查询都要从头界说变量从头初始化值,所以要分页的时分

每页的每条记载都是从1开端


版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表众发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章