WHERE g.value like '" + lookingFor + "%'
我有一个 EditText 从 SQLite 数据库中过滤光标。我想从“g”表中获取“价值”。例如,“价值”之一是“句号”。当我输入“停止”时,查询应该找到句号。
如果lookingFor 是“efg”,则什么也找不到。键入“efg”时如何找到“abcd efgh”?
PS。当我输入“cd”时,我不想得到“abcd edfh”
尝试使用
WHERE g.value like '%" + lookingFor + "'
sql中lookingFor前面的%表示在lookingFor之前可能还有其他数据。在lookingFor后面的%表示在lookingFor后面可能还有其他数据。
因此,如果您想在拥有“abcd efgh”之类的数据时找到“efg”,您需要执行以下操作:
....WHERE g.value LIKE '%" + lookingFor + "%' ";
是的,不幸的是,当您键入“cd”时,它会找到“abcd..”。为了解决这个问题,您可以在实际执行 sql 命令之前检查 lookingFor 的值。
if(lookingFor.equals("efg")
{
....WHERE g.value LIKE '%" + lookingFor + "%' ";
}
else
{
//Do whatever you want here if the value is not "efg".
}
祝你好运
查询前:
String strSpace=" ";
内部查询:
"... WHERE g.value like '"+ lookingFor + "%' OR g.value like '%"+strSpace + lookingFor + "%' ..."
试试这个:
Cursor oCursor = myDatabasequery(true, DATABASE_TABLE, new String[]{column1, column2,column3}, column2+ " LIKE '%" + lookingFor + "%'", null, null, null, null, null);
在您的代码中:
... WHERE g.value LIKE '%" + lookingFor + "%' "
它会在此之前和之后搜索您的字符串