【发布时间】:2015-11-09 21:47:35
【问题描述】:
对不起我的英语。我尝试动态创建搜索。示例:我们输入搜索词hellow,我输入h-> 他是搜索所有以后者开头的词he-> 他是搜索所有以后者开头的词hel-> 他是搜索... 等等。单词可能是大写和小写,例如HeLLow。我的例子
public List<Map<String, String>> getSearch(String tableName, String search) {
String query = "SELECT * FROM " + tableName + " WHERE `name` LIKE " + search;
Cursor cursor = db.rawQuery(query, null);
List<Map<String, String>> list = new ArrayList<>();
String[] names = cursor.getColumnNames();
if(cursor.moveToFirst()) {
do{
Map<String, String> map = new HashMap<String, String>();
for (int i = 0; i < names.length; i++) {
map.put(names[i], cursor.getString(i));
}
list.add(map);
} while (cursor.moveToNext());
}
return list;
}
我尝试这样做:
String query = "SELECT * FROM " + tableName + " WHERE name = " + search;
String query = "SELECT * FROM " + tableName + " WHERE name MATCH " + search;
也不行,我一直都是list = 0
【问题讨论】:
-
所以这个和android或者sqlite无关,但是可以改写成
how does LIKE works in SQL