关于在SQL语句中定义变量的问题,求助
假如我在一个SQL语句中直接使用变量selectid,CASEWHENid!=1THEN@row:=@row+1ELSE@row:=1ENDASrownumfromtes...
假如我在一个SQL语句中直接使用变量
select id,CASE WHEN id!=1 THEN @row:=@row+1 ELSE @row:=1 END AS rownum from test_table
这个SQL就是在id为1的那条记录存在的时候,给一个序号字段
但是如果我把id为1的那条记录删除之后,第一条记录的序号字段为null,之后的却有值,并且我执行了几次之后发现这个变量是一直存在的,执行一次序号增加一些,变量好像是一个全局的了
关于这点有点不明白,在SQL中直接定义变量到底作用域是什么范围?
而且这样写是否合适? 是不是需要创建一个存储过程来完成这个查询呢?
还有就是这样的语句能不能在程序中去执行,例如写到mybaits的XML文件中 展开
select id,CASE WHEN id!=1 THEN @row:=@row+1 ELSE @row:=1 END AS rownum from test_table
这个SQL就是在id为1的那条记录存在的时候,给一个序号字段
但是如果我把id为1的那条记录删除之后,第一条记录的序号字段为null,之后的却有值,并且我执行了几次之后发现这个变量是一直存在的,执行一次序号增加一些,变量好像是一个全局的了
关于这点有点不明白,在SQL中直接定义变量到底作用域是什么范围?
而且这样写是否合适? 是不是需要创建一个存储过程来完成这个查询呢?
还有就是这样的语句能不能在程序中去执行,例如写到mybaits的XML文件中 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询