How to avoid typecasting leading to full table update? Is there a way by which update to ALL rows of a Mysql table could be denied or avoided?

Background:

I have a table 'Orders' having 'OrderID' (Type VARCHAR) and 'VendorID' (Type Integer) as two of the columns. If I run the below query on this table, it simply resets VendorID in all the rows:

SET `VendorID` = 0 WHERE `OrderID` = 0;


OrderID should not be 0 but because of some bug in the system, it escaped all the checks and created havoc. Had OrderID been of Integer type, this query would not have done anything. But since OrderID has alphabets, it could not be set as Integer type.

Can Mysql be configured in such a way that it rejects Updates to all rows? Would result of this query change if underlying database is not Mysql?

My environment:

nginx/1.4.6 Codeigniter (2.x) / Mysql (5.5) / InnoDB table type

Please suggest how this issue could be avoided in future, thanks.
If you want you can use small trick

update urtable set  `VendorID` = 0 where `OrderID` = 0 and 
(select count(*) from urtable)&lt;&gt;(select count(*) from urtable where `OrderID` = 0)