我正在使用PHP和MySQL,我有2个包含字段number
和name
的表。 table1中的name
字段默认为空,如果table2中有一行匹配的数字,我想更新table1中的名称。
以下伪代码说明了这一点:
select number, number
from table1, table2
if number from table1 == number from table2
then insert or update name from table1 with the value of name from table2
答案 0 :(得分:0)
在MySQL中你可以做到
UPDATE table1 t1
INNER JOIN table2 t2 ON t1.number = t2.number
SET t1.name = t2.name
更多ANSI答案,你不能依赖加入更新语句将依赖于子查询,例如:
UPDATE table1 t1
SET name = (SELECT name FROM table2 t2 WHERE t2.number = t1.number)
WHERE EXISTS (SELECT 1 FROM table2 t2 WHERE t2.number = t1.number)
WHERE确保您只更新匹配行的列。