簡體   English   中英

MySQL,在一列上應用 function,然后為每一行更新另一列

[英]MySQL, apply a function on one column and then update another column for each row

表的兩個列分別命名為 csv 和 s。 csv 包含逗號分隔的 1 位數字作為字符串,沒有重復,如 '1,5,3,2',沒有重復,如 '1,5,1'。 想計算“csv”中有多少個 1 和 3,並將計數放入“s”列。 這就像將 function 應用於每個“csv”並將結果放入每行的“s”中。 我知道如何計算,但從未見過如何將 function 應用於一列並將結果放入另一列。 這是在存儲過程中完成的,我是否必須逐行通過它 go。

只是:

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

該公式將csv列中的字符數與去除1 s 和3 s 后的字符數進行比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM