這是我無法解決的問題: 我有一個關於交易表的特殊索引號,我每年重置這個特殊索引號。這裏是代碼。如何檢查給定的日期是在表記錄範圍
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