将两个更新查询合并为一个案例 MySQL
Combine two update queries into single case MySQL
我正在尝试将这两个更新查询转换为一个单一案例查询:
update product_varities pv
set pv.quantity = pv.quantity + iquantity
where pv.article_id = iarticleid
AND pv.size_category_id = isize;
update product_varities pv
set pv.status = (case when pv.quantity > 0 then 1 else 0 end)
WHERE pv.article_id = iarticleid and pv.size_category_id = isize;
这个查询工作正常。我试过的是:
update product_varities pv set pv.quantity =
(CASE WHEN pv.quantity >=0 THEN pv.quantity = pv.quantity + iquantity END),
pv.status =
(CASE WHEN pv.quantity > 0 THEN 1 else 0 END)
where pv.article_id = iarticleid and pv.size_category_id = isize;
这个returns
0 row(s) affected Rows Matched: 1 Changed 0
有人可以帮忙吗?谢谢
我想这就是您要找的:
update product_varities pv
set pv.quantity = pv.quantity + iquantity,
pv.status = case when pv.quantity > 0 then 1 else 0 end
where pv.article_id = iarticleid
and pv.size_category_id = isize;
显然 mysql
允许您将字段的值更新为表达式的结果。这似乎是你在做什么。
这种方式是将字段的值更新为计算 pv.quantity + iquantity
。
我正在尝试将这两个更新查询转换为一个单一案例查询:
update product_varities pv
set pv.quantity = pv.quantity + iquantity
where pv.article_id = iarticleid
AND pv.size_category_id = isize;
update product_varities pv
set pv.status = (case when pv.quantity > 0 then 1 else 0 end)
WHERE pv.article_id = iarticleid and pv.size_category_id = isize;
这个查询工作正常。我试过的是:
update product_varities pv set pv.quantity =
(CASE WHEN pv.quantity >=0 THEN pv.quantity = pv.quantity + iquantity END),
pv.status =
(CASE WHEN pv.quantity > 0 THEN 1 else 0 END)
where pv.article_id = iarticleid and pv.size_category_id = isize;
这个returns
0 row(s) affected Rows Matched: 1 Changed 0
有人可以帮忙吗?谢谢
我想这就是您要找的:
update product_varities pv
set pv.quantity = pv.quantity + iquantity,
pv.status = case when pv.quantity > 0 then 1 else 0 end
where pv.article_id = iarticleid
and pv.size_category_id = isize;
显然 mysql
允许您将字段的值更新为表达式的结果。这似乎是你在做什么。
这种方式是将字段的值更新为计算 pv.quantity + iquantity
。