Mysql 如何根据另一列的比较结果更新列

Mysql 如何根据另一列的比较结果更新列,mysql,default-value,string,Mysql,Default Value,String,我可以通过以下sql语句轻松找到所需的行: SELECT COUNT(*) FROM `individuals` WHERE `company_zip` != ''; SELECT COUNT( * ) FROM `individuals` WHERE length( `company_zip` ) > 0; SELECT COUNT( * ) FROM `individuals` WHERE strcmp( `company_zip`, '' ) != 0; 可能还有100种其他方法可

我可以通过以下sql语句轻松找到所需的行:

SELECT COUNT(*) FROM `individuals` WHERE `company_zip` != '';
SELECT COUNT( * ) FROM `individuals` WHERE length( `company_zip` ) > 0;
SELECT COUNT( * ) FROM `individuals` WHERE strcmp( `company_zip`, '' ) != 0;
可能还有100种其他方法可以做到这一点

然而

尝试在UPDATE语句中使用这些

UPDATE `individuals` SET `company_country` = 1 WHERE `company_zip` != '';
UPDATE `individuals` SET `company_country` = 1 WHERE length( `company_zip` ) > 0;
UPDATE `individuals` SET `company_country` = 1 WHERE strcmp( `company_zip`, '' ) != 0;
我得到的回答如下:

0 row(s) affected. ( Query took 0.5920 sec )
我承认我已经厌倦了看手动页面和谷歌搜索来找出答案。我在这里遗漏了哪条原则?在SELECT语句中很容易计算行数,但相同的条件不适用于UPDATE语句。这是虫子吗

该死!我在发帖前就知道了。所以我会告诉任何想知道答案的人。 我无意中添加了默认值为1的字段
company\u country
,因此所有记录的默认值都为“1”。所以mysql试图更新字段,但发现它们已经设置为1。将它们清空可以使更新查询工作。没有关系。为任何犯类似错误的人发帖


布拉德利

好的。具体来说,因为所有记录的“company_country”字段都已设置为1,mysql以简洁的方式告诉我,它没有更新或更改任何记录。他们开始时将该字段设置为1,最后将该字段设置为1。检查你的默认设置,尤其是其他人是否设置了桌子。我本来可以打字的

UPDATE `individuals` SET `company_country` = 1;

答案还是一样的。0行受影响。

正常。具体来说,因为所有记录的“company_country”字段都已设置为1,mysql以简洁的方式告诉我,它没有更新或更改任何记录。他们开始时将该字段设置为1,最后将该字段设置为1。检查你的默认设置,尤其是其他人是否设置了桌子。我本来可以打字的

UPDATE `individuals` SET `company_country` = 1;

答案还是一样的。0行受影响。

您应该添加答案,然后将其作为解决方案。您应该添加答案,然后将其作为解决方案。