我有一个关于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 '%'%')
答案 0 :(得分:3)
在SQL字符串中,引号必须通过加倍来转义:
... WHERE title LIKE '%''%'
为避免格式化此类问题,您应该使用参数:
String title = "'";
db.query(..., "title LIKE ?", new String[] { "%" + title + "%" }, ...);
答案 1 :(得分:0)
这个查询对我来说很好用
String select = "Select time from english_details where title = '"
+ title + "'";
所以你可以试试这个
String select = "Select time from english_details where title = '%"
+ title + "%'";