什么是 android 房间查询来匹配列数据完全匹配或以搜索字符串开头
VVV 这似乎只给了我完全匹配
select * from table where dna_sequence like :searchTerm
谢谢
这似乎只给了我完全匹配
select * from table where dna_sequence like :searchTerm
您的查询没有错。问题出在你的 Java 或 Kotlin 代码上。您获得的是完全匹配,因为您正在传递精确到searchTerm
并且未使用任何通配符。SQL 中的LIKE
运算符允许我们在字符串中使用通配符来匹配不仅仅是严格相等。_
将匹配单个字符,而%
将匹配零个或多个字符。如果不使用这些通配符,则LIKE
将与=
完全相同。因此,您需要为使用这些通配符之一的searchTerm
传递一个值。例如,如果您将 DAO 接口声明为
@Dao
public interface MyDao {
@Query("SELECT * FROM foo WHERE search like :searchTerm")
public Foo[] getFooSearch(String searchTerm);
}
您可以使用如下方式调用该方法:
MyDao dao;
dao.getFooSearch("abcdef%");
这将匹配字符串的开头。
注意:此示例有点做作,因为您只提供了 SQL 查询,而没有为您的 DAO 或数据实体提供任何 Java 或 Kotlin 代码。
在搜索方法中试试这个:
public String getResultForSearchString(String searchTerm){
String searchExptression=searchTerm+"%";
//.. perform search operation on SQLite with searchExpression
return result;
}
欲了解更多信息,请访问:https://www.sqlitetutorial.net/sqlite-like/
希望对您有所帮助。