Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 设置MySQL字段的最小值-可能吗?_Php_Sql_Mysql_Minimum - Fatal编程技术网

Php 设置MySQL字段的最小值-可能吗?

Php 设置MySQL字段的最小值-可能吗?,php,sql,mysql,minimum,Php,Sql,Mysql,Minimum,快速新手MySQL问题。确保给定字段的最小值为0的最简单方法是什么 基本上,我们有一个脚本,它会自动运行,每15分钟从一个字段的值中减去一个整数值——但我们希望任何到达0的条目都保持在0,而不是变为负值 这可以用PHP中的一个循环简单地完成,但我正试图限制对数据库的调用 有没有一种简单的方法可以使字段的最小值为0,或者使该字段中的任何负值自动变为0 谢谢 您可以为字段设置无符号属性。如果您尝试将此字段设置为0时才减去该值。只需更改更新查询,在指定字段中查找大于0的值,或者更好的是,大于要减去的值

快速新手MySQL问题。确保给定字段的最小值为0的最简单方法是什么

基本上,我们有一个脚本,它会自动运行,每15分钟从一个字段的值中减去一个整数值——但我们希望任何到达0的条目都保持在0,而不是变为负值

这可以用PHP中的一个循环简单地完成,但我正试图限制对数据库的调用

有没有一种简单的方法可以使字段的最小值为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列