这是我无法解决的问题: 我有一个关于交易表的特殊索引号,我每年重置这个特殊索引号。这里是代码。如何检查给定的日期是在表记录范围
SELECT IFNULL(MAX(Index),0)+1 as Index_Number FROM Transactions WHERE YEAR(Create_Date) = '2016'
我有这个查询没有问题,其作品fine.If我们认为,记录数据的日期是:
id | index | create_date
1 | 7 | 2016-01-01
2 | 8 | 2016-01-03
当日期2016年1月2日输入数据时,ID 2的索引数必须9.新添加的数据的索引号必须为8
换句话说,最终状态应当是:
id | index | create_date
1 | 7 | 2016-01-01
3 | 8 | 2016-01-02
2 | 9 | 2016-01-03
我该怎么做?
我忘记提及索引号根据每个人而不同,所以我不能使用auto_increment。
为什么要使用在AUTO_INCREMENT‘指数’列? – 2oppin
我可以建立一个每年可以重置的结构,并且可以按照我上面提到的进行排序吗? – ccoeder
所以在添加“2016-01-02”后,您的索引为“2016-01-03”sholud被更改? 如果是这样的话,你有两种方法:一种 - 在索引中添加这样的步骤的行,你总能找到可能插入的索引值;另一种是执行3个查询:查找所需的索引(在我们的测试案例8中),将所有索引> = 8,最后插入新行。 但你提到后,怀疑“索引”可能不是一个数字? – 2oppin