首页 > 解决方案 > 如何使用 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-update

解决方案


试试下面的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

推荐阅读