mysql load data infile

3

我得执行大量以下查询

UPDATE translations SET translation = (SELECT description FROM content WHERE id = 10) WHERE id = 1;

现在,我使用“load data infile”来进行插入和替换,但我想要的是仅更新表中每行的一个字段,而不干扰键。这种情况下应该使用什么语法?请注意,查询仅影响现有行。

谢谢!

1个回答

6
  • 使用 CREATE TEMPORARY TABLE 创建临时表。
  • 然后使用 LOAD DATA INFILE 填充该临时表。
  • 接着执行你的 UPDATE translations SET translation = ... 来设置从临时表的 SELECT 中获取的 1 个字段,与真实表 JOIN。以下是示例语法:

    UPDATE realTable, tmpTable 
      SET realTable.price = tmpTable.price 
      WHERE realTable.key = tmpTable.key
    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接