mysql计数更新_mySql中如何批量更新计数器

更新时间:2023-05-14 13:49:07 阅读: 评论:0

mysql计数更新_mySql中如何批量更新计数器
假如我们的mysql有⼀个计数器,⽽这个计数器需要我们重新统计,怎么办呢?
应⽤场景,⽐如说有⼀个商场,每卖⼀个产品都产⽣⼀个流⽔,然后我们需要知道每笔流⽔是该产品第⼏次出售的,这样说可能不明⽩,我拿⼀个详细的数据
举例吧。
recordID,productID,productType,llDate,counter
1, 1, 1, '2010-1-15 15:20:10' 0
2, 1, 2, '2010-1-15 15:20:10' 1
3, 2, 1, '2010-1-15 15:20:10' 0
4, 2, 1, '2010-1-15 15:20:10' 1
上⾯这个数据是⼀些撒⽓数据,包括记录的流⽔号,产品的编号,产品的类型,销售的时间,计数器。⼀般来说,计数器我们⾸先我会想到⾃增,但这⽽肯定
是不可能使⽤⾃增长的。
我最初的时候,尝使⽤这样的代码:update t_product t t_counter = (lect max(counter)
from t_product where productid = 1 and productType = 1) + 1 where where
productid = 1 and productType = 1
但是mysql报错,上⽹⼀查,mysql不⽀持这种写法,呵呵,我对mysql完全不熟悉。记得以前在sql
rver⽤过游标,然后也试试查找游标,经过n次google与百度,最终搞定这个难题。
充分的近义词我本⾝对mysql完全是个外⾏,就连注释也不知道怎么注释的,现在终于知道有三种写法的,⽽--的注释后⾯是要空⼀格的,所以代码写得性能什么的
就不敢说了,只是实现了这个功能,希望对有同样需求的朋友有⽤。
呵,还学到⼀点,declare只能写在最前⾯。
看最终的代码:
CREATE
PROCEDURE
p_retCounter (
)
BEGIN
DECLARE
productID INT
;
宝马烧机油DECLARE
type
INT
;
DECLARE
tmpCount INT
;
DECLARE
stopFlag int
;
#使⽤游标
DECLARE
cur cursor for SELECT
COUNT
(
*
木薯糖水的做法)
,
productID,
productType from
t_product GROUP BY
productID,
中国红豆杉productType;
洗发水英语
DECLARE
CONTINUE HANDLER
FOR NOT
FOUND t
stopFlag=
1
;
#如果找不到记录,则设置stopFlag=1 #定义变量及创建临时表
CREATE
TEMPORARY
TABLE
tmp_Counter(
recordID int
not
,
Counter int not
null
)
TYPE
=
HEAP;
#打开游标open cur; REPEAT
fetch cur into tmpCount, productID, type
;
SET
@id =
-
一年级下数学1
;彪形大汉
INSERT
INTO
tmp_Counter (
SELECT recordID,
(
@id :=
@id +
1
)
昊是什么意思
counter
t_prod

本文发布于:2023-05-14 13:49:07,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/897426.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:计数器   产品   记录
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图