0

Android SQLite に関する質問があります。テーブルにレコードのグループがあります。{" 、[ 、]、*、&、^、%、$、#}" などの特殊文字を使用してレコードをクエリしています。正しい結果をカーソルに返します。

特殊文字 { ' } (一重引用符) を使用すると、データベースにその文字を含む結果がないすべての結果が表示されます。SQLita ツールで同じクエリを実行しましたが、完全に機能していますが、私のプログラムではすべての結果が返されています。なぜこれが起こっているのですか?この問題を解決する方法。この問題を解決するために私を助けてください。

コードは次のとおりです。

if( search_tag!=null && search_tag.length() > 0 )
        {
            query_filtered.append("("+DatabaseHelper.TABLE_DOCS.COL_TITLE+" like "+"'%"+search_tag+"%')");
        }

クエリは次のとおりです。

select 
    id as _id, category_array, title, 
    building_name, content_type_array, url, type_of_level 
from 
    documents_list 
where 
    (title like '%'%')
4

2 に答える 2

3

SQL 文字列では、引用符を二重にしてエスケープする必要があります。

... WHERE title LIKE '%''%'

このようなフォーマットの問題を回避するには、代わりにパラメーターを使用する必要があります。

String title = "'";
db.query(..., "title LIKE ?", new String[] { "%" + title + "%" }, ...);
于 2013-03-22T12:43:35.817 に答える
0

このクエリは私にとってはうまく機能しています

String select = "Select time from english_details where title = '"
                + title + "'";

だからあなたはこのように試すことができます

String select = "Select time from english_details where title = '%"
                + title + "%'";
于 2013-03-22T11:55:04.073 に答える