首页 > 解决方案 > 如果值为 x 或 y,则 MySQL 更新

问题描述

我有以下程序可以帮助我每天更新表格中的日期,使它们与演示目的相关。这两个过程之间的区别仅在于它们分别为 2 个不同的客户property_id2执行3

UPDATE `opera_pms_detail` SET `arrival` = SUBDATE(curdate(), 2), `departure` = SUBDATE(curdate(), 1), `read_on` = NULL WHERE `property_id` = 2 AND `import_type` = '1'

UPDATE `opera_pms_detail` SET `arrival` = SUBDATE(curdate(), 2), `departure` = SUBDATE(curdate(), 1), `read_on` = NULL WHERE `property_id` = 3 AND `import_type` = '1'

现在,为了效率,有没有更好的方法呢?不必两次调用该过程,我可以在一次调用中更新两个客户端的列吗?

谢谢

标签: mysql

解决方案


尝试像这样实施您的程序

PROCEDURE ýour_procedure_name(IN p_property_id INT)
BEGIN
UPDATE `opera_pms_detail` 
SET `arrival` = SUBDATE(curdate(), 2),
`departure` = SUBDATE(curdate(), 1),
`read_on` = NULL 
WHERE `property_id` = p_property_id 
AND `import_type` = '1';
END

你将把你的程序称为:

CALL `your_procedure_name`(property_id)

推荐阅读