我们当前的mysql脚本将我们的Invoicing软件连接到我们的网站更新库存水平,但是我们的产品表中有一个字段,用于指示产品是否可见,脚本无法解决。我想介绍一些IF逻辑,将prodvisible列设置为1,如果它正在更新的库存水平是> 0
在我的研究中,似乎IF不能出现功能,遗憾的是我没有经验,尽管我付出了最大的努力,但我无法让它发挥作用。
我们现有的成功更新库存水平的脚本如下......
update isc_products p
set
p.prodcurrentinv =[{Level_LessOrderBook}]
where p.prodcode = '[{ItemNumber}]' and p.prodinvtrack=1
--GO;--
update isc_product_variation_combinations pvc
set
pvc.vcstock = [{Level_LessOrderBook}]
where pvc.vcsku='[{ItemNumber}]'
我想将某些内容集成到第一部分,其中包含以下内容
If [{Level_LessOrderBook}] > 0
p.prodvisible = 1 where p.prodcode = '[{ItemNumber}]'
ENDIF
如果它缺货,我不希望它将产品设置为不可见,只要它有库存就可见。
感谢您的帮助。
答案 0 :(得分:1)
你应该能够在没有IF声明的情况下这样做:
update isc_products p
set p.prodvisible = 1
where p.prodcode = '[{ItemNumber}]'
and [{Level_LessOrderBook}] > 0
或者,如果您在一个声明中询问这样做:
update isc_products p
set
p.prodcurrentinv = [{Level_LessOrderBook}],
p.prodvisible = IF([{Level_LessOrderBook}] > 0, 1, p.prodvisible)
where p.prodcode = '[{ItemNumber}]' and p.prodinvtrack=1
最后,这个怎么样?
update
isc_products p
set
p.prodcurrentinv = [{Level_LessOrderBook}],
p.prodvisible = case when [{Level_LessOrderBook}] > 0 then 1 else p.prodvisible end
where
p.prodcode = '[{ItemNumber}]'
and p.prodinvtrack = 1
--GO;--
update
isc_product_variation_combinations pvc
set
pvc.vcstock = [{Level_LessOrderBook}]
where
pvc.vcsku='[{ItemNumber}]'
我将所有内容的格式与现有脚本的其余内容完全相同。您确定列prodvisible
是否存在,拼写是否正确,并采用数值或位值?