我在休眠的本地mysql查询中使用查询变量。对于每次执行,我都应将查询变量设置为0。
为此,我正在执行另一个查询,例如
SET @var:= 0。
但是spring使事情变得异步了。它在设置变量后执行另一个查询,因此结果与预期不符。
我有标题和项目表。每个标题都有多个项目。
示例
header = {h1,h2,h3},
items = {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
row3: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。