Php 设置MySQL字段的最小值-可能吗?
快速新手MySQL问题。确保给定字段的最小值为0的最简单方法是什么 基本上,我们有一个脚本,它会自动运行,每15分钟从一个字段的值中减去一个整数值——但我们希望任何到达0的条目都保持在0,而不是变为负值 这可以用PHP中的一个循环简单地完成,但我正试图限制对数据库的调用 有没有一种简单的方法可以使字段的最小值为0,或者使该字段中的任何负值自动变为0Php 设置MySQL字段的最小值-可能吗?,php,sql,mysql,minimum,Php,Sql,Mysql,Minimum,快速新手MySQL问题。确保给定字段的最小值为0的最简单方法是什么 基本上,我们有一个脚本,它会自动运行,每15分钟从一个字段的值中减去一个整数值——但我们希望任何到达0的条目都保持在0,而不是变为负值 这可以用PHP中的一个循环简单地完成,但我正试图限制对数据库的调用 有没有一种简单的方法可以使字段的最小值为0,或者使该字段中的任何负值自动变为0 谢谢 您可以为字段设置无符号属性。如果您尝试将此字段设置为0时才减去该值。只需更改更新查询,在指定字段中查找大于0的值,或者更好的是,大于要减去的值
谢谢 您可以为字段设置无符号属性。如果您尝试将此字段设置为<0,mysql将生成错误。您是否尝试过简单的条件“WHERE”,或者问题是否比这更复杂
UPDATE mytable SET mycolumn=mycolumn-1 WHERE mycolumn>0
如果值已经为零,则可以将逻辑添加到脚本中,使其不从值中减去
修正负值的更新触发器,将其设置为零是另一个想法。通常的方法是约束,但MySQL不支持约束
因此,要么使列无符号,要么确保在应用程序逻辑中,只有当值>0时才减去该值。只需更改更新查询,在指定字段中查找大于0的值,或者更好的是,大于要减去的值。哇。这么简单。我总是忘记在WHERE子句中可以使用条件句。谢谢!不。没有错误,只是一个警告。MySQL仍然很乐意做减法运算。在一个基本的无符号整数字段上,
0-1=4294967295
yes,只是一个警告,但该行插入0而不是负值。刚刚在mysql 5.1.41-3ubuntu12.6上测试过,int(10)unsigned NOT NULL列