我已经对这个问题做了一些研究,发现这很有效,而且非常简单:
UPDATE `table` SET `A`=A+200 WHERE B='Y';
如果B列只有一个Y值,这显然可行。
但是这里出现了“艰难”的问题。部分。 B列有多个值,如:Y1,Y2,Y3,Y4,
我希望只有在B列中找到Y3时才执行A + 200,而不管其他值是什么。我不太熟悉数组或通过列B搜索Y3值所需的任何内容。任何帮助表示赞赏。谢谢!
答案 0 :(得分:2)
您可以使用FIND_IN_SET或使用REGEXP
匹配正则表达式示例:
UPDATE `table`
SET `A` = `A` + 200
WHERE FIND_IN_SET('Y3', `B`)
或
UPDATE `table`
SET `A` = `A` + 200
WHERE `B` REGEXP '(^|,)Y3(,|$)'
aaand glglgl说的是什么。规范化您的数据库:Wikipedia: Database normalization
答案 1 :(得分:0)
UPDATE table` SET A=A+200 where find_in_set('Y3',YOUR_COLUMN);
答案 2 :(得分:0)
UPDATE `table` SET `A`=A+200 WHERE B='Y3';
答案 3 :(得分:0)
UPDATE `table` SET `A` = A + 200 WHERE `B` LIKE 'Y%';
试试这个。这意味着更新B以Y开头的表,并且无论下一步是什么;)