【发布时间】:2019-11-12 05:45:02
【问题描述】:
一个表的两个列被命名为 csv 和 s。 csv 包含逗号分隔的 1 位数字作为字符串,没有重复,如 '1,5,3,2',没有重复,如 '1,5,1'。想计算“csv”中有多少个 1 和 3,并将计数放入“s”列。这就像对每个“csv”应用一个函数并将结果放入每行的“s”中。我知道如何计算,但从未见过如何将函数应用于一列并将结果放入另一列。这是在存储过程中完成的,我是否必须逐行遍历它。
【问题讨论】:
一个表的两个列被命名为 csv 和 s。 csv 包含逗号分隔的 1 位数字作为字符串,没有重复,如 '1,5,3,2',没有重复,如 '1,5,1'。想计算“csv”中有多少个 1 和 3,并将计数放入“s”列。这就像对每个“csv”应用一个函数并将结果放入每行的“s”中。我知道如何计算,但从未见过如何将函数应用于一列并将结果放入另一列。这是在存储过程中完成的,我是否必须逐行遍历它。
【问题讨论】:
只是:
update mytable
set s = char_length(csv) - char_length(replace(replace(csv, '1', ''), '3', ''))
该公式将csv 列中的字符数与删除1s 和3s 后的字符数进行比较。
【讨论】: