sql-update - 如何使用 from 及其 id 从其他表更新表
问题描述
我想使用 ip_range 表通过其 ip 更新我的 play_log_new 表国家值。这是我在mysql中的查询:
update play_log_new pln
set country = ipr.country_name
from ip_range ipr where (INET_ATON(pln.ip) BETWEEN ipr.ip_start_digit AND ipr.ip_end_digit)
and pln.ip is not null and pln.country is null;
解决方案
试试下面的sql,如果你能提供2个表的详细信息就更好了
UPDATE
`play_log_new` AS `pln`,
(
SELECT
*
FROM
`ip_range`
WHERE
INET_ATON(`pln`.`ip`) BETWEEN `ip_range`.`ip_start_digit` AND `ip_range`.`ip_end_digit`
) AS `ipr`
SET
`pln`.`country` = `ipr`.`country_name`
WHERE
`pln`.`ip` is not null and `pln`.`country` is null
推荐阅读
- r - 使用 mailR 发送 html 时出错“只能在非 UTF-8 MBCS 语言环境中读取字节”
- javascript - 如何使用 Javascript 设置滑块元素的值?
- python - 如何将两个值作为字符串连接到odoo Char字段中?
- javascript - Bokeh CustomJS 回调以在滑块移动时更改 DataFrame 的行
- snowflake-cloud-data-platform - 在雪花的创建脚本中添加当前日期
- python - 当原始程序关闭时,如何停止从另一个 python 程序中启动的烧瓶应用程序?
- mariadb - mysqldump:无法执行'show create table `xxx.yyy`':引擎中不存在表'yyy'(1932)
- python - 如何将嵌入式 URL 列表发送到第二个解析 scrapy 函数?
- php - 如何将此 SQL 转换为 Laravel Eloquent?
- javascript - Jest mockedCoeus.mockImplementation 抛出 TypeError