我在hibernate原生mysql查询中使用查询变量。每次执行时,我都应该将查询变量设置为0。
为此,我正在执行另一个查询,如
设置@var:=0。
但是spring使事情异步化,它在设置变量之后执行另一个查询,所以结果不是预期的。
我有标题和项目表。每个标题有多个项目。
示例
标题={h1,h2,h3},
项目={i1,i2,i3,i4,i5,i6,i7,i8}
h1->{i1,i2,i3},h2->{i4,i5},h3->{i6,i7,i8}
我想要这样的结果
第1行:h1、i1
第2行:h1、i2
第3行:h1、i3
以此类推。。
我们可以在这里使用连接,但是在我的例子中,我将结果作为分页来获取。
像第一页的前1到10个标题(带项目),第二页的1到20个。。
如果我使用带有limit关键字的连接,我们将得到所需的记录。
但这里我想要每页的页眉数。
这就是为什么我使用查询变量@cnt来计算头的原因。
查询是:
SET @cnt:=0; SELECT pk_header_id, pk_item_id, @cnt := IF( @header_id is not null AND @header_id != pk_header_id, @cnt := @cnt + 1, @cnt) AS cnt, @header_id:=pk_header_id FROM header join item on fk_header_id = pk_header_id order by pk_header_id.
对于每个执行,@cnt变量增加到10,对于每个查询执行,我应该将其设置为0。
暂无答案!
目前还没有任何答案,快来回答吧!