mysql - MySQL,在一列上应用一个函数,然后为每一行更新另一列
问题描述
表的两个列被命名为 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
中的字符数与删除1
s 和3
s 后的字符数进行比较。
推荐阅读
- sql-server - 批量插入索引格式的 DAT 文件与 FMT 格式文件错误
- django - Django 中的用户追随者模型。显示用户名而不是用户关注的人的电子邮件
- tensorflow - 我对 tensorflow/tfjs LSTM inputShape 以及 LSTM 基本理解有疑问
- google-chrome - 由管理员设置时获取 Chrome 代理设置
- android - 如何从反编译的APK源代码中区分特定类是app代码还是库代码?
- swift - 如何从 Dispatch.notify (swift) 返回数组
- apache-kafka - ack 如何在 Kafka 中用于发布/订阅?
- python - 如何使用 Python 将多个不同大小的矩形组合成一个?
- delphi - 如何解决 Delphi OnGetText 和 OnSetText 问题
- typescript - 使用接口而不导入它们