mysql - 使用 INNER JOIN 重写 UPDATE 查询而不使用 IN

标签 mysql join

我有一个疑问:

UPDATE table_1 set field_1 = 1 where field_2 IN 
(SELECT field_2 from table_2 where field_3 = 1)

然而,对于大型数据库来说,这需要很长时间(>2000ms)。有没有办法使用 JOIN 重写此查询以避免使用 IN?

注意:field_1和field_3都有索引,但对查询没有帮助。这是使用 MySQL。

最佳答案

UPDATE table_1, table_2
    SET table_1.field_1 = 1
    WHERE table_1.field_2 = table_2.field_2
        AND table_2.field_3 = 1

关于mysql - 使用 INNER JOIN 重写 UPDATE 查询而不使用 IN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7892191/

相关文章:

MySQL 从包含不同数据类型的列中过滤某些值

mysql - SQL JOIN 不同的表并仅显示 NOT NULL 值

mysql - 无法在查询中获得正确的记录 - php mysql

php - 使用php从mysql数据库读取图像文件

mysql - 忽略 SELECT 上的 HAVING 子句中使用的字段

mysql复制需要有两台master服务器

mysql - 我将如何运行这个?

mysql - 当从 MySQL 中的连接表中进行选择时,连接操作是否发生在选择之前?

mysql - mysql中的聚簇表查询

php - 加入3个三张表