Mysql自定义变量增加——@rownum:= @rownum+1

Mysql自定义变量增加——@rownum:= @rownum+1

有时候一张表虽然设置了ID自增,但是经过一系列业务增删改操作后自增的ID也不是那么有序,MySQL中又没有获取行号的函数,因此我们需要通过一些自定义语句来进行获取。

通常的做法是:通过定义自定义变量@rownum来保存表中的数据。通过赋值语句
@rownum:=@rownum + 1 来累加达到递增行号的需求
注意:@rownum 是自定义变量而不是Mysql的函数,所以名字是可以随便取的比如@adc@行号@rowNo
 

-- 例如
SELECT
	@rownum := @rownum + 1 AS rank,
	ts.* 
FROM
	sxjt_gantry_code AS ts,
	( SELECT @rownum := 0 ) r
     

sql执行结果

 后半部分语句的 ( SELECT @rownum := 0 ) r 相当于创建了别名为:r 的新表,其表的列为@rownum,数值为0;
这里注意 ( SELECT @rownum := 0 ) r* 必须加括号且取表别名 否则会报错
通过利用变量将@rownum的行进行重新赋值,并显示。可以应用于获取行号或名次排列。
 

在原有的列上加前后缀 CONCAT()

通过Mysql CONCAT()函数连接字符串,也可以连接多个字段CONCAT(字段A,字段B,字段C) as ‘三个字段合为一个’

SELECT
	CONCAT( '你是第: ', @rownum := @rownum + 1, " 名" ) AS '排名',
	b.type,
	b.NAME,
	b.description 
FROM
	tbl_book b,
	( SELECT @rownum := 0 ) r

sql执行结果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值