Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
影响MySQL中所有关键字行的产品变量_Mysql_Sql - Fatal编程技术网

影响MySQL中所有关键字行的产品变量

影响MySQL中所有关键字行的产品变量,mysql,sql,Mysql,Sql,我正在尝试跨两个(inventory,sall)MySQL表更新表库存 假设我们正在处理的sku是BT888-16 UPDATE inventory JOIN sold ON inventory.sku = sold.sku SET inventory.quantity = inventory.quantity - sold.quantity 这与预期一样有效,但BT888-16是BT888sku的一种产品变体 如何使salled中的BT888-16影响inventory中的BT888的所有数

我正在尝试跨两个(
inventory
sall
)MySQL表更新表库存

假设我们正在处理的sku是
BT888-16

UPDATE inventory JOIN sold
ON inventory.sku = sold.sku
SET inventory.quantity = inventory.quantity - sold.quantity
这与预期一样有效,但
BT888-16
BT888
sku的一种产品变体

如何使
salled
中的
BT888-16
影响
inventory
中的
BT888
的所有数量行


例如,
BT888-16
应该影响所有包含短语
BT888
的数量行吗
BT888
BT888-01
BT888-02
BT888-03
——一直到
BT888-***
这似乎很难理解,但您可以明确地将逻辑放入:

UPDATE inventory i JOIN
       sold s
       ON i.sku = s.sku or
          (s.sku = 'BT888-16' and i.sku like 'BT888-%')
    SET i.quantity = i.quantity - s.quantity;
编辑:

我的意思是,你可以开始玩这样的游戏:

UPDATE inventory i JOIN
       sold s
       ON i.sku = s.sku or
          (s.sku like '%-16' and i.sku like concat(substring_index(s.sku, '-', 1), '-%')
    SET i.quantity = i.quantity - s.quantity;

但是,我认为表中需要一列来为您进行映射。也就是说,您需要能够定义“相互”影响的SKU ID组。

这似乎很困难,但您可以明确地将逻辑放入:

UPDATE inventory i JOIN
       sold s
       ON i.sku = s.sku or
          (s.sku = 'BT888-16' and i.sku like 'BT888-%')
    SET i.quantity = i.quantity - s.quantity;
编辑:

我的意思是,你可以开始玩这样的游戏:

UPDATE inventory i JOIN
       sold s
       ON i.sku = s.sku or
          (s.sku like '%-16' and i.sku like concat(substring_index(s.sku, '-', 1), '-%')
    SET i.quantity = i.quantity - s.quantity;

但是,我认为表中需要一列来为您进行映射。也就是说,您需要能够定义“相互”影响的SKU ID组。

仅在SKU的前5个字母上加入,按SKU的前5个字母汇总销售金额分组。是的,但并非所有SKU都有5个字母。希望有一种方法可以根据SKU的精确匹配减去任何变化。但是,所有产品变体都有一个-***。仅在sku的前5个字母上加入,按sku的前5个字母对销售金额分组进行汇总。是的,但并非所有sku都有5个字母。希望有一种方法可以根据SKU的精确匹配减去任何变化。不过,所有的产品变体都有一个-***附加在它上面。这很酷,我不知道你能做到;顺便说一句,你忘了一个括号。@jhaagsma,如果你有编辑权限,那么请继续编辑答案,我相信Gordon不会介意的all@Rahul对不起,我没有意识到我有编辑权限!谢谢你的提醒,很有趣。但这需要我在查询的每个人中手动输入SKU?这将变得不可收拾。是否可以执行类似“inventory.sku-%”之类的
操作,这样我就可以通过编程来完成此操作?谢谢您的编辑。我会摆弄这个方法,谢谢你给我指明了正确的方向!那很酷,我不知道你能做到;顺便说一句,你忘了一个括号。@jhaagsma,如果你有编辑权限,那么请继续编辑答案,我相信Gordon不会介意的all@Rahul对不起,我没有意识到我有编辑权限!谢谢你的提醒,很有趣。但这需要我在查询的每个人中手动输入SKU?这将变得不可收拾。是否可以执行类似“inventory.sku-%”之类的
操作,这样我就可以通过编程来完成此操作?谢谢您的编辑。我会摆弄这个方法,谢谢你给我指明了正确的方向!