gpt4 book ai didi

mysql - 如何使用 mysql 中多个 if 语句的输出更新列文本值?

转载 作者:行者123 更新时间:2023-11-28 23:54:54 24 4
gpt4 key购买 nike

例如,我的表结构是这样的-

id (int, auto_increment),
value_1_isChecked (int),
value_1 (text),
value_2_isChecked (int),
value_2 (text),
value_3_isChecked (int),
value_3 (text),
extra_info (text),
interpretation (text)

所有值(value_1value_2value_3)、它们的检查状态(以 0 或 1 的形式)、额外信息存在于数据库中(30k 行)。 我正在尝试的是更新 interpretation 单元格中的连接文本(我知道这不是正确的 mySql 格式,我写它只是为了更好地理解我的问题)-

variable result='<b>Selected Values :-</b><br>';
If(value_1_isChecked = 1) Then
result = result + "<b>[A]. </b>" + value_1 + "<br>";
End If;
If(value_2_isChecked = 1) Then
result = result + "<b>[B]. </b>" + value_2 + "<br>";
End If;
If(value_3_isChecked = 1) Then
result = result + "<b>[C]. </b>" + value_3 + "<br>";
End If;
If(extra_info Is NOT NULL) Then
result = result + "<br><b>Extra info :-</b><br>" + extra_info;
End If;
Update myTable set interpretation = result;

我不能使用 ELSEIF,因为多个值的检查状态可能为真 (1)。

我知道如何在 PHP 中实现这一点,但是更新数千(大约 30K)行需要很长时间,这就是为什么我试图从 mySql 本身做到这一点。但是我无法形成正确的查询。

最佳答案

希望这个例子对你有帮助

SQL FIDDLE DEMO

select 
concat (
case v1 when '1' then concat('<b>','v1','</b>') else '' end,
case v2 when '1' then concat('<b>','v2','</b>') else '' end,
case v3 when '1' then concat('<b>','v3','</b>') else '' end
)
from table1

只需更新查询以满足您的需要,然后重写为 UPDATE

关于mysql - 如何使用 mysql 中多个 if 语句的输出更新列文本值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31956110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com