MySQL:如果某个值更新列

Zak*_*ziz 3 mysql sql

我不是一个SQL专家,快速谷歌搜索没有得到我太多(虽然我不认为我使用最好的搜索短语).希望你们能给我一些指导.

我在表中存在一个存储数字的列.如果之前等于1,我希望此数字设置为2.我想知道是否可以避免这种情况:

$val = mysql_fetch_row(mysql_query("SELECT columnA FROM tableName WHERE something = '$someValue'));

if($val[0] == 1) { .....UPDATE tableName SET columnA = 2....... }
Run Code Online (Sandbox Code Playgroud)

是否可以直接查询数据库?有这样的事情:SET columnA = 2 if columnA = 1

Mos*_*cho 11

实际上你正在寻找的查询应该是:

update tableName set columnA = 2
where columnA = 1
Run Code Online (Sandbox Code Playgroud)

你提到的"if"实际上是一个条件.并且这些条件在update语句的where子句中设置.

而已 :)