如何在 MySQL 中执行此操作:if 字段值 > 0 然后减一,否则就这样

发布于 2024-08-22 15:58:50 字数 59 浏览 8 评论 0原文

UPDATE tbl SET counts=counts-1 ...
UPDATE tbl SET counts=counts-1 ...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

妥活 2024-08-29 15:58:50

如果 count 是您要更新的唯一列(或者,您没有在 where 子句中指定其他条件),那么您可以在 where 子句中执行此操作。

UPDATE [Table] SET counts = counts - 1 WHERE counts > 0;

但是,如果您是更新同一查询中的其他列,这是行不通的。但你有选择

UPDATE [Table] SET counts = MAX(counts - 1, 0);

或者

UPDATE [Table] SET counts = CASE WHEN counts > 0 THEN counts - 1 ELSE 0 END;

If count is the only column you're updating (or, you don't have other criteria specified in your where clause), then you can just do that in the where clause

UPDATE [Table] SET counts = counts - 1 WHERE counts > 0;

However, if you're updating other columns in the same query, this won't work. But you have options

UPDATE [Table] SET counts = MAX(counts - 1, 0);

or

UPDATE [Table] SET counts = CASE WHEN counts > 0 THEN counts - 1 ELSE 0 END;
弥繁 2024-08-29 15:58:50
UPDATE tbl 
SET counts=counts-1 
WHERE counts > 0
UPDATE tbl 
SET counts=counts-1 
WHERE counts > 0
拧巴小姐 2024-08-29 15:58:50

感谢@Peter Bailey,

这是带有 WHERE 选择器的示例。

UPDATE [tbl_multimedia] SET [m_publish] = CASE WHEN [m_publish] = 0 THEN '1' ELSE '0' END WHERE id='1'

祝你好运 。

thanks to @Peter Bailey

this is the example with the WHERE selector .

UPDATE [tbl_multimedia] SET [m_publish] = CASE WHEN [m_publish] = 0 THEN '1' ELSE '0' END WHERE id='1'

Good luck .

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文