1
WHERE g.value like '" + lookingFor + "%'

我有一个 EditText 从 SQLite 数据库中过滤光标。我想从“g”表中获取“价值”。例如,“价值”之一是“句号”。当我输入“停止”时,查询应该找到句号。

如果lookingFor 是“efg”,则什么也找不到。键入“efg”时如何找到“abcd efgh”?

PS。当我输入“cd”时,我不想得到“abcd edfh”

4

4 回答 4

3

尝试使用
WHERE g.value like '%" + lookingFor + "'

于 2013-08-13T09:42:55.493 回答
1

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".
}

祝你好运

于 2013-08-13T09:50:05.450 回答
0

查询前:

String strSpace=" ";

内部查询:

 "...   WHERE g.value like '"+ lookingFor + "%' OR g.value like '%"+strSpace + lookingFor + "%'   ..."
于 2013-08-13T10:02:44.550 回答
0

试试这个:

Cursor oCursor = myDatabasequery(true, DATABASE_TABLE, new String[]{column1, column2,column3},  column2+ " LIKE '%" + lookingFor + "%'", null, null, null, null, null);

在您的代码中:

... WHERE g.value LIKE '%" + lookingFor + "%' "

它会在此之前和之后搜索您的字符串

于 2013-08-13T09:41:50.473 回答