我在遠程服務器上有一個表,用於存儲我們客戶端軟件的版本號。我使用SOAP來處理請求。客戶端軟件發送一個版本號,我需要使用SQL來查找下一個版本號。用於查找下一個版本號的SQL查詢
這是我使用的SQL。我腦子有點不好,我知道這是不正確的,但我似乎無法弄清楚我需要做什麼。
創建表代碼:
CREATE TABLE IF NOT EXISTS `sqlUpdateVersions` (
`primary_key` int(11) NOT NULL AUTO_INCREMENT,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`comment` text NOT NULL,
`majorVS` tinyint(4) NOT NULL,
`minorVS` tinyint(4) NOT NULL,
`revisionVS` tinyint(4) NOT NULL,
`buildVS` tinyint(4) NOT NULL,
`filePK` int(11) NOT NULL,
`customDBJarPK` int(11) DEFAULT NULL,
PRIMARY KEY (`primary_key`),
KEY `filePK` (`filePK`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
這是SQL查詢來找到一個版本號。我傾倒在這個版本1.1.0.0
select b.majorVS, b.minorVS,b.revisionVS, b.buildVS
from sqlUpdateVersions b where
b.majorVS>=1 AND b.minorVS >=1 AND b.revisionVS>=0 AND b.buildVS>=10
ORDER BY b.majorVS,b.minorVS,b.revisionVS, b.buildVS
現在很清楚,我可以告訴這個SQL是有問題的。但是,我將如何構造一個將返回下一個值,說1.2.0.0或1.1.1.0
謝謝。
是有序的'timestamp's根據版本號? – 2013-02-15 16:22:57
@MichaelBerkowski他們應該是,但它不是一個保證。理論上他們應該按順序進行,但是並沒有真正的機制來防止這種情況發生,只是希望我們保持秩序。 – kevingreen 2013-02-15 16:23:28
,我想'primary_key'也是如此 - 不能保證它們是按升序排列嗎? – 2013-02-15 16:24:15