2

次のレコードを文字列として sqlite データベースに格納したとします。

09575788
08902149
08902134
47889789
47889776
47889797
48250496

私の仕事は、これらの値がデータベースに存在するかどうかを確認することです。したがって、これらの値の存在をチェックするメソッドを 1 つ作成しました。

したがって、ユーザーはこれらの値のいずれかを editText に挿入し、値が存在するかどうかを確認する必要があります。

表示される問題は、「0」で始まる数値を検索しようとすると、クエリは常に null を返しますが、「0」で始まらない他の数値を検索すると、クエリは値を見つけることですデシベル。

これは私のコードです:

 Cursor cursor = this.db.query(TABLE_NAME, new String[] {KEY1, KEY2, KEY3},
                KEY_CONDITION1 + " LIKE " + prefix1 + " AND " + KEY_CONDITION2 + "=" + prefix2, null, null, null, null);
        return cursor;

解決方法はありますか?ご回答有難うございます

重要すべての値はデータベースに文字列として保存されます

4

1 に答える 1

3

@エイドリアン、正解はアレックスKによって与えられましたが、あなたは彼を誤解していると思います。先頭のゼロに意味がある場合 (たとえば、ゼロで始まる米国の郵便番号の場合など)、数字ではなく、文字列になります。このような列のデータ関係は、テキスト (別名 varchar) である必要があります。先頭にゼロがある値を整数にキャストしたくありません。検索語を一重引用符で囲んで文字列値を探したいだけです。例えば:

          ...  where zipcode = '01287'
于 2012-07-23T16:35:02.290 に答える