-1
1つの列で5つの単語を同時に検索する必要があります。 5つの単語すべてが列に存在する必要があります。私のコードでは、最初の単語だけが検索されています。私は "listOfWords"をループして、ループをクエリに渡す必要があることを理解しています。誰かがこれを行う方法の例を持っていますか?私の試み:1つのクエリで5単語のSqLite検索
String query = "SELECT 1 FROM sowpods WHERE field1 IN " + listOfWords;
Cursor cursor = db.rawQuery(query, null);
if (cursor.moveToFirst()) {
for (int i = 0; i < listOfWords.length(); i++) {
do {
Toast.makeText(this, "Word exists!", Toast.LENGTH_SHORT).show();
} while (cursor.moveToNext());
}
} else {
Toast.makeText(this, "Word does not exist", Toast.LENGTH_SHORT).show();
cursor.close();
db.close();
}
cursor.close();
db.close();
}
UPDATE: 現時点では、私の作品唯一の事はこれです:
String query = "SELECT 1 FROM sowpods WHERE field1 LIKE 'dojfdgkhdg'";
Cursor cursor = db.rawQuery(query, null);
if (cursor.moveToFirst()) {
Toast.makeText(this, "Yay!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "No, don't exist!", Toast.LENGTH_SHORT).show();
}
String query2 = "SELECT 1 FROM sowpods WHERE field1 LIKE 'cat'";
Cursor cursor2 = db.rawQuery(query2, null);
if (cursor2.moveToFirst()) {
Toast.makeText(this, "Yay!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "No, don't exist!", Toast.LENGTH_SHORT).show();
}
String query3 = "SELECT 1 FROM sowpods WHERE field1 LIKE 'dog'";
Cursor cursor3 = db.rawQuery(query3, null);
if (cursor3.moveToFirst()) {
Toast.makeText(this, "Yay!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "No, don't exist!", Toast.LENGTH_SHORT).show();
}
それはAが必要です1.しかし、それは正しく表示されません多くの反復コード、2.私は、複数のカーソルを持つことがリソースの非常に効率的な使用であるとは確信していません。 私は信じられないほどいくつかの指摘に感謝します。乾杯!
新しい更新
私は今のだところである:
Cursor cursor = db.query(true, "sowpods", new String[]{"field1"}, "field1 IN (?)", new String[]{" 'dog', 'cat', 'horse', 'cow'"}, null, null, null, null);
if (cursor.moveToFirst()) {
do {
cursor.moveToNext();
Toast.makeText(this, "Word 1 exists", Toast.LENGTH_SHORT).show();
cursor.moveToNext();
Toast.makeText(this, "Word 2 exists", Toast.LENGTH_SHORT).show();
cursor.moveToNext();
Toast.makeText(this, "Word 3 exists", Toast.LENGTH_SHORT).show();
cursor.moveToNext();
Toast.makeText(this, "Word 4 exists", Toast.LENGTH_SHORT).show();
} while (cursor.moveToNext());
}
return cursor;
}
これは何を返していないので、任意のヘルプは歓迎されるであろう。
を使用しすぎて、その後のサブストリングと特定など、すべての作業が含まれているカラム文字列を検索するには感謝をしたい場合は、これは有望に見えるが、私は部分文字列の中に私の「listOfWords」を分割する必要があります。私はそれをして、あなたに戻ってきます。再度、感謝します。 –
こんにちは、私はオプション3を試しましたが、エラーが出ます:CHARINDEX、そのような機能はありません。私もオプション2を試しましたが、5つの単語がすべてデータベースに入っていてもWordは存在しません。 –