MySQL:遍历一个表并更新另一个表?
作者:互联网
表t1:
s (string) | x (int)
----------------+--------
"gfrdgeradfg" | 0
"abdfodpnmn" | 0
... | ...
表t2:
c (varchar(1))
-----
"a"
"c"
"g"
"r"
-----
我想为t1.s中出现的每个字符t2.c添加1到t1.x,即结果应该是这样的:
s | x
----------------+--------
"gfrdgeradfg" | 3 (contains "a","g","r")
"abdfodpnmn" | 1 (contains "a")
... | ...
在php中遍历t2和更新t1非常简单,但如果可能的话,我宁愿用纯SQL进行.
谢谢你的帮助.
解决方法:
UPDATE t1
SET x = (
SELECT SUM(t1.s LIKE CONCAT('%', t2.c, '%'))
FROM t2
)
澄清:表达式t1.s LIKE CONCAT(‘%’,t2.c,’%’)的计算结果为布尔值,在MySQL中等于1或0.
我没有测试它,所以请告诉我它是否无效.
标签:sql-update,sql,mysql 来源: https://codeday.me/bug/20191105/1996996.html