Mysql实现rownum(Mysql更新update字段为rownum)(Hibernate中sql时:=需用/*‘*/:=/*‘*/替换 否则报错)

Navicat版

-- Mysql实现rownum(Mysql更新update字段为rownum)(Hibernate中sql时:=需用/*'*/:=/*'*/替换 否则报错)
set @rownum_mini_shop_goods=0;
update mini_shop_goods a SET a.weighing_num=(select @rownum_mini_shop_goods := @rownum_mini_shop_goods + 1 as nid) where a.enabled_flag=1 and (a.type_code like '25%' or a.type_code like '26%') and a.shop_id='402881e8761e798101761e7a147f0000';

Hibernate中SQL

报错:Space is not allowed after parameter prefix ':'

        //Mysql实现rownum(Mysql更新update字段为rownum)(Hibernate中sql时:=需用/*'*/:=/*'*/替换 否则报错)
		String sql = "set @rownum_mini_shop_goods=0";
		this.excuteUpdateForSQL(sql, null);
		//重排称号
		String sqlU = "update mini_shop_goods " +
				" set weighing_num=(" +
					//bug,报错Space is not allowed after parameter prefix ':'
					//Hibernate中sql时:=需用/*'*/:=/*'*/替换 否则报错
					"select @rownum_mini_shop_goods /*'*/:=/*'*/ @rownum_mini_shop_goods + 1 as nid) " +
					//"select @rownum_mini_shop_goods := @rownum_mini_shop_goods + 1 as nid) " +
				" where enabled_flag=1 " +
				" and (type_code like '25%' " +
					" or type_code like '26%') " +
				" and shop_id=? ";
		this.excuteUpdateForSQL(sqlU, new Object[]{ shopId });

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值