生成sql语句。在en表中存在city_name字段和city_id字段,部分数据有city_name和city_id的数据,剩余数据只有city_name,如何根据city_name的值来查找en表中的city_id,并将它填充到剩余数据的city_id中
时间: 2023-08-23 14:05:01 浏览: 75
将表数据生成sql语句
3星 · 编辑精心推荐
可以使用以下SQL语句来实现:
```
UPDATE en
SET city_id = (
SELECT city_id
FROM en AS e
WHERE e.city_name = en.city_name
AND e.city_id IS NOT NULL
)
WHERE city_id IS NULL
AND city_name IS NOT NULL;
```
这条语句会先从en表中选择出所有city_id和city_name都存在的数据,然后根据剩余数据的city_name来匹配符合条件的city_id,并将其填充到剩余数据的city_id中。注意要排除掉city_id或city_name为空的数据,以及避免出现重复匹配的情况。
阅读全文