mysql - 对于每一行进行更新

标签 mysql sql

我有一个很大的查询来创建一个像临时表但不是临时表的支持表, 我创建此表的查询中的一个字段非常有问题,如果没有他,我会在 15 秒内创建一个包含大量子查询的 50k 行表。 有了这个字段我就无法运行,我的 4GB 内存已经全部耗尽并且无法完成查询, 所以我取出了这个字段,然后在没有该字段的情况下运行查询,创建表,然后我将运行其他查询来一一更新。

我的字段查询是这个:

(select GROUP_CONCAT(nome) from con_classificador where FIND_IN_SET(id,(SELECT CONCAT(GROUP_CONCAT(fk),GROUP_CONCAT(pac.fk_classificador))
                                    FROM prod_assoc_classificador AS pac
                                    LEFT JOIN con_classificador AS cc4 ON pac.fk_classificador = cc4.id
                                    where pac.fk_produto = #HERE ID#)) and id != 7) AS categorias_texto

所以我有这个表 aux 和 fk_produto,我需要将它与这个子查询连接起来并获取结果并更新每一行。

所以我的 aux 表上有这个 categorias_texto 行,需要使用这个查询和 #HERE ID # 来提供它,它必须连接 aux 表和这个子查询

我知道这有点疯狂,但我不知道如何更好地解释。

最佳答案

尝试使用比SUBQUERY更高效的JOIN

update 
tableA as ta 
inner join tableB as tb on ta.fk_product = tb.id
set ta.title = tb.title

关于mysql - 对于每一行进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19427843/

相关文章:

MYSQL SELECT WHERE CLAUSE - 排除行

sql - 如何将 N 个数据库表与一个主表绑定(bind)?

sql - 模拟数据库中的继承

mysql - SQL 一种从较大类别中选择项目的简单方法

sql - 来自数据库的随机数

php - pdo 总是返回 false

php - MySQL 日期查询不起作用

php - 使用 PHP 进行表单和 SQL 验证

MySql - 使用选择更新

mysql - 如何在 GROUP BY 查询中仅选择最低的总和?