1

私は最初のAndroidアプリケーションで書き込み、SQLiteデータベースを使用していくつかのテーブルにデータを保存しています。私のテーブルの1つには、特定の検索に対応する一連のページのURLが含まれています。

データベースの文字列フィールドを使用すると、htmlを簡単に保存できます(実行している内容に応じて、html://mysite.org/blah/blah.htmまたは* .jpgの形式で)。これらのURLは、データベースからも簡単に取得できます。

ただし、効率を上げるために、これらのURLを1回だけ解析して追加したいと思います。テーブルでURLを検索し、URLがまだ存在しない場合にのみ解析して追加できるようにしたい。問題は、特殊文字(確かにコロンとピリオド)がクエリ文字であるために問題を引き起こしていることです。クエリ内のURLを一重引用符(')で囲み、角かっこ({})を使用してみました。また、円記号も試しました。

クエリできるようにここに欠けているものはありますか:SELECT * from TABLE WHERE url = "http://*。htm"?

さらに、これはデータベースへのURLを保存するための最良の方法ですか?私が扱っているURLは、検索フォームから値が入力された検索URLである場合があるため、特殊文字が含まれている可能性があります(Craigslistの検索を考えてみてください)。

どんな方向でも大歓迎です!

4

1 に答える 1

0

operatorのドキュメントをLIKE読んでください。クエリは次のようになります。

SELECT * FROM MyTable WHERE url LIKE 'http://%.htm'

さらに、検索文字列に%または文字が含まれる可能性があるため、句_を使用する必要があります。ESCAPE

SQL コマンドを作成するときに、次のような特殊文字でつまずか'ないようにするには、次のパラメーターを使用します。

String searchPattern = "http://%.htm%";
Cursor c = db.rawQuery("SELECT * FROM MyTable WHERE url LIKE ?",
                       new String[] { searchPattern });
于 2013-01-10T16:26:54.727 に答える