我目前正在使用SQLLite来处理我的数据。我有NAME列,想要编号相同的名字,f.E。我可以添加名称Boris
,但如果我第二次添加Boris
,则第一个条目会更新为Boris 1
,而第二个条目会更新为Boris 2
。
我的问题是,如何进行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 :(得分: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
并保存。