SELECT选择mysql中不存在的下一个最小可用数字

时间:2018-03-31 13:43:53

标签: mysql

我有一个存储十进制数的表列,例如:

number  status     paid_how
1.54    completed  paypal
1.54    not paid   paypal
1.53    not paid   paypal
1.51    not paid   paypal

对于不等于“已完成”的所有状态,数字列必须保持唯一。因此,如果尝试插入另一个状态为“未付款”的1.54的数字,我需要将数字向下更改为唯一值。在上面的例子中,它不能插入1.54,1.53但应该接受1.52。

我一直在试着找出一个可以确定下一个最低数字的选择查询,同时状态!=“已完成”。

1 个答案:

答案 0 :(得分:0)

select min(my_number)
from my_table
where status != 'completed'

如果你想要下一个你应该使用的号码 - 那么就像:

select min(my_number)-.01
into my_next_number
from my_table
where status != 'completed'