2016-07-01 28 views
1

我目前正在使用SQLLite来处理我的数据。我有NAME这一列,并希望编号名称相同,f.E.我可以添加名称Boris,但如果我第二次添加Boris,则第一个条目将更新为Boris 1,而第二个条目将获得编号Boris 2Android SQLite - 如何标签名称

我的问题是,我如何做sql查询,以便它选择每个Boris条目,即使它的编号。

我目前的做法是:

db.rawQuery("SELECT " + DealContract.PurchaseTable.COLUMN_NAME + " FROM " + DealContract.PurchaseTable.TABLE_NAME + " WHERE " + DealContract.PurchaseTable.COLUMN_NAME + " LIKE '" + name + "%'", null); 

Simplfied:

SELECT NAME FROM PURCHASES WHERE NAME LIKE 'name%' 

这工作,但:

  • 不与后加入像Boris Johnson

    东西排除名称
  • 包括有东西遗失的名字一样Bori

编辑:应该是“如何号码的姓名”

+0

也许用“[1-9]”替换“%”? –

+0

@AleksandarStefanović是只有一个号码?如果是的话,它会如何看起来像多个数字?而且它还需要选择未编号的名称 – zebleckDAMM

+0

我不确定。也许你可以将结果提取到Java中,然后从那里开始工作?就像一些决定名字的周期一样。 –

回答

0

我建议你删除%通配符。 将SELECT NAME FROM PURCHASES WHERE NAME LIKE 'name%'更改为SELECT NAME FROM PURCHASES WHERE NAME LIKE 'name [0-9]' OR NAME LIKE 'name'。 例如,如果您的查询返回1个结果,您将知道数据库中只有1个boris。因此,只需获取返回的行数(如果不为零),则将该数字追加到boris并保存。