当数字为负时,保存0(mysql)

时间:2014-01-18 23:10:32

标签: mysql

我在数据库中有一个存储双打的字段,我想要实现的是,如果要保存的数字是负数,那么它应该保存为0。我不知道我是否应该在查询中定义它,或者是否有一种方法可以在db本身中设置它。如果有人能给我一个答案,我将不胜感激;顺便说一句,我使用mysql。

3 个答案:

答案 0 :(得分:4)

您可以使用MySQL IF语法:

UPDATE table SET column=IF(value<0, 0, value) WHERE ...

有关IF语法here的更多信息。

答案 1 :(得分:0)

简单,使用MySQL的IF()函数,其形式为:

if(expression,value_if_true,value_if_false)

INSERT INTO TABLE (COLUMN) VALUES (IF(my_value < 0, 0, my_value)

答案 2 :(得分:0)

如果您已经拥有表格中的值,那么您可以更新否定值:

update table
   set value = 0
   where value < 0;

这可能比使用ifcase更有效(因为if是ANSI标准,因此优于case。)

如果要在进入表格时调整值,则需要创建before update触发器和before insert触发器来修复值。

但是,您可以通过使用视图获得所需内容:

create view v_table as
    select col1, col2, col3, (case when value < 0 then 0 else value end) as value
    from table;