Mysql SQL';If和语句';?
我需要增加一个翻译后文件,以便文件中的产品名称能够将示例的第一列更改为一致的文本格式:Mysql SQL';If和语句';?,mysql,sql,Mysql,Sql,我需要增加一个翻译后文件,以便文件中的产品名称能够将示例的第一列更改为一致的文本格式: "PRODUCT1 1000MG" >> "PRODUCT 1 1000 MG" "PRODUCT 2 1500MG" >> "PRODUCT 2 1500 MG" "PRODUCT3 PLATED 200MG" >> "PRODUCT 3 PLATED 200 MG" 以此类推,需要查询大约50行不同的产品。我唯一能想到的是一个复杂的嵌套IF语句 提前谢谢 如果可
"PRODUCT1 1000MG" >> "PRODUCT 1 1000 MG"
"PRODUCT 2 1500MG" >> "PRODUCT 2 1500 MG"
"PRODUCT3 PLATED 200MG" >> "PRODUCT 3 PLATED 200 MG"
以此类推,需要查询大约50行不同的产品。我唯一能想到的是一个复杂的嵌套IF
语句
提前谢谢 如果可以添加表,则可以使用转换表和带有join的更新: 该查询看起来可能是这样的:
UPDATE tab
SET val = t.newval
FROM MyTable tab
INNER JOIN Transl t ON t.oldval = tab.val
如果可以使用code plus mysql创建脚本,那么可以使用正则表达式重建文本。在你的例子中,用它在一组数字前后加一个空格。答案很大程度上取决于你的产品名称所遵循的“来源”格式。他们遵循什么模式?如果它们是不可预测的,你将永远无法更新所有这些。我同意Jan的观点。这只是一个数据问题,似乎没有一个通用的逻辑。我对提供的内容进行了评论,但即使数据更加多样化,通常也有更好的解决方案。您的问题是,此列中的数据是如何聚合的?它是其他字段的串联吗?例如:产品名称、产品id、尺寸(单位:MG)?如果是这样的话,更好的解决方案可能是重新聚合其他列数据并替换现有的数据。您可以避免嵌套的If与存储函数或外部应用程序/脚本混淆。哪一个更好取决于您的处理有多复杂,以及您对MySQL的过程SQL有多在行。即,不是串联或任何其他过程。向前看,文本条目最终将是一致的(因为产品“下降”),不需要进一步增加。
UPDATE tab
SET val = t.newval
FROM MyTable tab
INNER JOIN Transl t ON t.oldval = tab.val