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

选择mysql中不存在的下一个最小可用数字,mysql,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.

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

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

我一直在绞尽脑汁试图找出一个select查询,它可以确定下一个最低的数字,而状态=“已完成”

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

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

您可以找到状态不等于“已完成”的最小数量?然后你可以减去-0.01?数字列的数据类型是什么?例如,如果它是浮点值,“下一个最小值”可能是1.529999999。您想在插入查询或更新中执行此操作吗?抱歉,我没有提供足够的详细信息。number列存储为decimal 3,2.Alpesh,我想先运行select查询,在PHP中查找下一个可用的数字,然后插入
select min(my_number)-.01
into my_next_number
from my_table
where status != 'completed'