2012-07-28 119 views
1

关于UPDATE查询如果url属性发生更改,我想更改need_pa​​rse属性。 need_pa​​rse取决于url值。Mysql:更新属性当且仅当其他属性发生更改

如何才能在MySQL上实现这一目标& Python?

+0

上更新,你想改变need_pa​​rse属性,只有当url属性发生变化,否则不执行更新查询,它是你想要什么?比方说,更新查询是要更改need_pa​​rse属性,那么如果该更新还涉及url属性的更改,则需要更新查询。如果是,则对need_pa​​rse属性执行更新查询否则不是?这是你想要的吗?或者是其他东西? – Shubhansh 2012-07-28 08:56:11

+0

我总是想要执行更新,但我想更新need_pa​​rse属性当且仅当url属性已更改。 所有其他属性将被更新,即使它们的值没有改变。 – DjangoPy 2012-07-28 09:02:02

+0

方案:使用触发器 - 见[参考文献] [1] [1]:http://stackoverflow.com/questions/6296313/mysql-trigger-after-update-only-if-row-has -changed?rq = 1 – DjangoPy 2012-07-28 09:59:29

回答

0

也许你需要这样的东西:

UPDATE tbl 
SET need_parse = CASE WHEN url = <input url> THEN need_parse ELSE <value to change to> END 
+0

我为这样的事情创建了一个触发器。 这是我的参考: http://stackoverflow.com/questions/6296313/mysql-trigger-after-update-only-if-row-has-changed?rq=1 – DjangoPy 2012-07-28 09:33:32

0

您可以使用以下触发把检查更新。它会做你需要什么

DELIMITER $$ 

CREATE 
    TRIGGER `test`.`update_check` BEFORE UPDATE 
    ON `db_name`.`table_name` 
    FOR EACH ROW BEGIN 
    IF (new.`url` = old.`url`) 
    THEN SET new.`need_parse` = old.`need_parse`; 
    END IF; 
    END$$ 
DELIMITER ; 

希望它可以帮助...

相关问题