Php 失败的SQL case语句是否可以更改某些行,但不能更改其他行?

Php 失败的SQL case语句是否可以更改某些行,但不能更改其他行?,php,sql,Php,Sql,我计划使用PHP执行一条SQL case语句,一次编辑MySQL表中的多行。如果查询失败,是否可能某些值已更改而其他值未更改 本例显示了所涉及的案例陈述类型: UPDATE person SET name = CASE id WHEN 1 THEN 'Jim' WHEN 2 THEN 'Mike' WHEN 3 THEN 'Precious' END, sex = CASE id WHEN 1 THEN 'f

我计划使用PHP执行一条SQL case语句,一次编辑MySQL表中的多行。如果查询失败,是否可能某些值已更改而其他值未更改

本例显示了所涉及的案例陈述类型:

UPDATE person
    SET name = CASE id
        WHEN 1 THEN 'Jim'
        WHEN 2 THEN 'Mike'
        WHEN 3 THEN 'Precious'
    END,
    sex = CASE id
        WHEN 1 THEN 'female'
        WHEN 2 THEN 'male'
        WHEN 3 THEN 'male'
    END
WHERE id IN (1,2,3)

交易是你要找的词。事务是全有或全无操作。这意味着要么一切都通过了,事务就完成了,要么某件事失败了,整个事务就回滚了。这样可以防止数据中的不一致


如上所述,表引擎需要支持事务。InnoDB在MySQL中实现了这一点,而MyISAM则没有。

使用事务。将您的代码添加到问题中。如果人们知道你想问什么,你会得到更好的答案。。!照达维兰多姆的建议去做。请注意,表的引擎类型必须是支持InnoDB之类事务的引擎类型。确切地说,“SQL案例语句”是什么?在问题中添加了一个示例。