java - 当输入查询只是该数据的一部分时,如何使用 Room 从我的数据库中获取数据?
问题描述
我在 DAO 中有以下代码,试图为我的软件电话应用程序创建“快速搜索”功能:
// Retrieve the numbers matching the query (e.g. for dialer quick search)
@Query("SELECT * FROM phone_numbers_table WHERE phone_number LIKE :phoneNumber")
List<PhoneNumber> getMatchingNumbers(String phoneNumber);
在拨打号码时,我希望我的应用程序获取其中包含当前输入的字符串的所有联系人号码(即,如果我输入了“456”,我想获取其中包含“456”的所有号码)。但是,上面的代码只返回与输入查询完全匹配的数字。
如何更改我的代码以返回我需要的内容?
解决方案
应该更彻底地搜索,这是答案:
// Retrieve the numbers matching the query (e.g. for dialer quick search)
@Query("SELECT * FROM phone_numbers_table WHERE phone_number LIKE '%' || :phoneNumber || '%'")
List<PhoneNumber> getMatchingNumbers(String phoneNumber);
推荐阅读
- javascript - 3 个单选按钮,在文本框上产生随机值,但在提交时只读取 1 个值
- r - 在R中的管道中有条件地过滤
- rust - clap - 返回 ArgMatches<'static> 时如何传递 default_value
- java - 如何在每秒钟以编程方式在android中获取当前的经度和纬度?
- flutter - 如何使用可选择的块声明提供程序,因此将同一页面与几个可能的块之一重用
- c# - .Net Core API 返回 500 内部服务器错误
- javascript - 将动态样式与 useEffect 结合使用时出现 React Native 错误
- c++ - 从不同主机运行时,docker 映像不同
- sql - 在 DELETE FROM 上触发的触发器函数中未引发异常(postgresql 13)
- azure - 检测断开连接的 Microsoft 网络聊天(后端 botframework)