2015-12-03 55 views
0

我在sqlite中的表有一個'name'列,它的輸入類似於前綴+ integervalue。例如p1,p2。如果有5行p1,p2,p5,p7,p10。我知道輸入前綴爲'p',我的下一個插入值必須是p4之後的p3,在p6,p8之後,就是這樣。請幫我查詢這個空白或任何API支持,我在android編程中使用content_provider。請幫我我的客戶需要這個..如何在sqlite表格中插入/查找空位

+0

更容易爲人們幫助你,如果他們有一些相關的**一段代碼到**努力 - 請告訴我們你到目前爲止所嘗試過的 – 0X0nosugar

回答

0

你必須提取名稱中的數字,並用它來搜索下一個數字:

SELECT 'p' || (substr(Name, length('p') + 1) + 1) 
FROM MyTable 
WHERE NOT EXISTS (SELECT 1 
        FROM MyTable AS T2 
        WHERE T2.Name = 'p' || (substr(MyTable.Name, length('p') + 1) + 1)) 
ORDER BY substr(Name, length('p') + 1) + 1 
LIMIT 1; 
0

爲什麼你不查詢整個表?所以你找回了值p1,p2,p5,p7和p10。將它們作爲String列入數組列表並遍歷它們。看看你沒有的價值。

另一種可能性是用p0到pXXXX創建一個名爲programmaticaly的列表。迭代它們,然後在你的db中查看你沒有的名字。創建新記錄,將它們添加到列表中並將它們推送到數據庫。

或者你只是獲得最大值和最小值並填充它們之間的所有內容並將其推送到db(創建或替換)。

希望能幫助您找到您的算法。