Timezones
---------
-AreaCode varchar
-Timezone varchar
Contacts
--------
-Phone varchar
-Timezone varchar
Contacts 表中除 Timezone
外的所有内容均已填充,因此我想查找每个电话号码的时区并更新联系人。这是我尝试做的,但是 MySQL
给出了
Error 1242 Subquery returns more than one row
对于每个时区(0、-1、-2、-3、-4、-5),我执行此更新:
update contacts
set contacts.timezone = '-1'
where left(contacts.phone,3) = (Select timezones.areacode
from timezones
where timezones.timezone = '-1');
最佳答案
您的子查询返回多行。只需将“=”替换为“IN”即可处理此问题:
update contacts
set contacts.timezone = '-1'
where left(contacts.phone,3) in (Select timezones.areacode
from timezones
where timezones.timezone = '-1');
关于mysql - SQL 更新,子查询返回多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12163571/