我有两个表("z"和"z_ao")."z"包含美国的所有邮政编码以及其他所需信息."z_ao"仅包含某些邮政编码.我想在"z"的每一行中将"ls"列设置为"1",其中"z"中的"zip"与"z_ao"中的"zip"匹配.
我一整天都在阅读以确定这样做的"正确"方式,我认为这会使用JOIN但却令人沮丧地困惑,在这种情况下,这是一次性操作,所以我最终做了以下笨拙的事情,查询密集的方式:
$z = mysql_query("SELECT zip_code FROM z");
while($z_row = mysql_fetch_row($z)) {
$zao = mysql_query("SELECT zip FROM z_ao WHERE zip='$z_row[0]'");
$zao_num=mysql_numrows($zao);
if (mysql_numrows($zao) == 1) {
mysql_query("UPDATE z SET ls = '1' WHERE zip_code='$z_row[0]'");
}
}
Run Code Online (Sandbox Code Playgroud)
我很遗憾寻求帮助,因为我知道答案已经存在,但为了将来的参考,我想了解这样做的正确方法,我想我需要看一个确切的例子.
谢谢.
尝试多表更新:
UPDATE z INNER JOIN z_ao ON z.zip_code = z_ao.zip SET z.ls='1'
Run Code Online (Sandbox Code Playgroud)
您不需要进行任何计数或测试或循环.JOIN会为您匹配行,并自动排除z_ao表中不匹配的邮政编码.
| 归档时间: |
|
| 查看次数: |
522 次 |
| 最近记录: |