我必须执行以下查询的负载

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

现在,我使用加载数据 infile 进行插入和替换,但我想要的本质是只更新该表中每一行的 1 个字段,而不会弄乱键。这可能是什么语法,请注意查询仅影响现有行。

谢谢

最佳答案

  • 使用 CREATE TEMPORARY TABLE 创建临时表。
  • 然后使用 LOAD DATA INFILE 填充临时表。
  • 然后执行您的 UPDATE translations SET translation = ... 以从临时表的 SELECT 中设置 1 字段,并与真实表连接。示例语法如下:
    UPDATE realTable, tmpTable
      SET realTable.price = tmpTable.price
      WHERE realTable.key = tmpTable.key
    
  • 关于mysql 加载数据 infile,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4400420/

    10-13 22:25