![](/img/trans.png)
[英]How to update different values in same column in mysql in single query?
[英]How to update the same column with different values?
我正在寻找一种解决方案,根据 ID 列中的键更新具有不同值的同一列。
ID | Result_Required(ID+seq 中的字母) |
---|---|
A1 | A1_abc |
A1 | A1_def |
A1 | A1_ghi |
A2 | A2_abc |
A3 | A3_abc |
A3 | A3_def |
: . | : . |
一个) | AN_something |
我正在查看此参考链接,但未定义的 ID 数量是不可行的。
因此,正如您所说,您有一个存储过程,可以找到您需要的所有字符串。 因此,您可以通过构建一个如下所示的字符串来更改您的存储过程:
WHEN ID = 'A23' then 'somestring'
每个元素都会有一个像上面这样的文本块。 您需要连接成一个变量,我现在将其称为value
。
这就是您的UPDATE
的外观:
UPDATE yourtable SET res = <concatenate value here>;
可能出现的问题:
如果建议的方法太慢或占用太多 memory,那么您可以将更新分解为批次并将范围添加到where
子句。
在您进行更新之前,建议确保所有假定存在的记录确实存在并且清除了不必要的记录,因此您的update
假设是合理的。
如果你有一个 cursor 并循环它,你可以使用一个索引,从 1 开始并以最后一个元素 n 结束,并始终为你的 ID 构建一个文本数据。 根据您的示例,它似乎是A<theindexnumber>
的形式。 您的案例中的实际规则可能不同,因此您需要实现一种算法,将您的索引可靠地映射到文本应该更新到的相应 ID。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.