2015-12-03 52 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(创建或替换)。

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