我有一个奇怪的问题。
在我的数据库中,我有一个包含348个条目的表。有没有办法只在符合特定标准的情况下更改特定值?如果显示为0,则将更改激活为否。
+---+--------+------+
|id |display |active|
+-------------------|
|1 |18 |yes |
|2 |28 |yes |
|3 |0 |yes |
+---+--------+------+
后
+---+--------+------+
|id |display |active|
+-------------------|
|1 |18 |yes |
|2 |28 |yes |
|3 |0 |no |
+---+--------+------+
将列中的活动全部更改为是或否我可以处理,但在这里我不知道是否可以,或者我必须手动检查每个值。
有什么想法吗?
答案 0 :(得分:2)
这听起来像一个简单的更新声明:
update your_table set active = 'no' where display = 0;
如果您想根据active
的值有条件地更新display
的值,那么您可以像这样使用案例表达式:
update your_table set active = case when display = 0 then 'no' else 'yes' end;
或使用MySQL IF语句:
update your_table set active = if(display = 0, 'no', 'yes');
请注意,最后两个语句对所有行都有效,因此如果您只需更新子集,则应使用where子句。