2016-07-01 5 views
1

現在、データを処理するためにSQLLiteを使用しています。私は列NAMEを持ち、同じ名前の番号を付けたいと思っています。 Borisという名前を追加できますが、Borisを2回追加すると、最初のエントリはBoris 1に更新され、2番目のエントリはBoris 2に更新されます。Androidの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

EDITのように欠けているものと名前が含まれています。私はあなたが%ワイルドカードを取り外し示唆

+0

"%"を "[1-9]"に置き換えてもいいですか? –

+0

@AleksandarStefanovićは、それは1つの番号だけですか?はいの場合は、複数の数字でどのように見えますか?そしてそれは番号が付いていない名前を選択する必要があります – 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に追加して保存します。

関連する問題