You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL中为翻译工具生成多语言待翻译行的实现方法

你的原有SQL逻辑不对,它只是把表中目标语言非'en'/'zh'/'ar'/'th'的待翻译行重复插入,并没有生成你需要的指定目标语言的待翻译记录。要实现为每个待翻译文本生成这四种目标语言的行,可以用下面的SQL:

INSERT INTO Translation (text, `from`, `to`, tran)
SELECT 
    t.text, 
    t.`from`, 
    target_lang.lang,
    ''
FROM 
    Translation t
CROSS JOIN 
    (VALUES ('en'), ('zh'), ('ar'), ('th')) AS target_lang(lang)
WHERE 
    t.tran = ''
    AND target_lang.lang != t.`from`
    AND NOT EXISTS (
        SELECT 1 
        FROM Translation 
        WHERE text = t.text 
          AND `from` = t.`from` 
          AND `to` = target_lang.lang
    );

逻辑说明:

  • 用CROSS JOIN和VALUES子句生成四个目标语言的集合,和每个待翻译的源文本(tran=''的行)做关联,得到每个文本对应四种目标语言的组合。
  • 过滤掉目标语言和源语言相同的情况,避免无效翻译任务。
  • 通过NOT EXISTS子查询避免插入重复的(文本、源语言、目标语言)记录,防止表中出现冗余数据。
  • 插入时把tran设为空,符合程序对待翻译行的识别规则。

内容的提问来源于stack exchange,提问作者AC1D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 16:40:34