MySQL for 循环 - 插入具有相同数据、不同索引的多行

标签 mysql sql for-loop

我正在寻找一种纯 MySQL 方法来将数百行插入数据库。我正在为一个具有粗略架构的应用程序进行翻译,例如:

Translations
| site ID | translation ID | translation value |
------------------------------------------------
| ...     | ...            | ...               |

Sites
| site ID | language code | ... 
---------------------------------
| ...     | ...           | ... 

问题是我有数百个相同语言的翻译,其中表中的外键不是语言代码(我正在使用旧系统,所以我无法更改它)。

我是否可以按照 SET @keys = ("key1", "key2", ...) 的方式做一些事情并循环执行 INSERT 语句?

澄清:

我有一个包含不同网站翻译的表格。新网站已添加到“网站”表中,我现在正在添加这些网站的翻译。

由于翻译表基于 site_id 而不是 language_code,因此我需要为多个站点添加相同的翻译。需要为多个不同的 site_id 插入大约 100 个翻译,并且这将在后续重用,因此手动执行此操作是不切实际的。

最佳答案

这对于评论来说太长了,但我不明白这个问题。这听起来更像是更新而不是插入:

update translations
    set LanguageKey = <new language key>
    where TranslationID in (key1, key2, key3 . . .);

如果您尝试使用新键复制现有行,可以使用 insert 来实现。 。 。选择:

insert into translations(LanguageKey, TranslationValue)
    select <new language key>, TranslationValue
    from translations
    where TranslationId in (key1, key2, key3, . . . );

您的问题应该真正提供示例数据和期望的结果,以(向其他人)阐明您想要完成的任务。

关于MySQL for 循环 - 插入具有相同数据、不同索引的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17422343/

相关文章:

mysql - 如何将此日期/时间值插入到日期时间字段中

php - 列出 mysql 中同一个表的结果

php - 在所有字段中插入查询存储 0

python - Psycopg2 不喜欢以小写字母开头的表名

python - 在 Python 3 中使用 for 循环查找字符串中的值

r - 使用 for 循环和 pROC 包在 R 中计算多条 ROC 曲线。在预测字段中使用什么变量?

MySQL : making a field unique for each article id

MySQL 事务不停止 for 循环中的竞争条件

sql - 如何从 Oracle SQL 中的字符串中删除前导 0?

java - 如何在 java 的 for 循环中使用公式