【问题标题】:MySQL, apply a function on one column and then update another column for each rowMySQL,在一列上应用一个函数,然后为每一行更新另一列
【发布时间】:2019-11-12 05:45:02
【问题描述】:

一个表的两个列被命名为 csv 和 s。 csv 包含逗号分隔的 1 位数字作为字符串,没有重复,如 '1,5,3,2',没有重复,如 '1,5,1'。想计算“csv”中有多少个 1 和 3,并将计数放入“s”列。这就像对每个“csv”应用一个函数并将结果放入每行的“s”中。我知道如何计算,但从未见过如何将函数应用于一列并将结果放入另一列。这是在存储过程中完成的,我是否必须逐行遍历它。

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    只是:

    update mytable 
    set s = char_length(csv) - char_length(replace(replace(csv, '1', ''), '3', ''))
    

    该公式将csv 列中的字符数与删除1s 和3s 后的字符数进行比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-20
      • 2021-10-25
      • 1970-01-01
      • 2015-05-02
      • 1970-01-01
      • 2018-03-29
      相关资源
      最近更新 更多