java - 当输入查询只是数据的一部分时,如何使用 Room 从数据库中获取数据?

标签 java android jquery android-room dao

我在我的 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);

关于java - 当输入查询只是数据的一部分时,如何使用 Room 从数据库中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61517844/

相关文章:

java - 为 Bigdecimal 生成动态标度

android - 导航参数双重错误: Can't escape identifier `0.0` because it contains illegal characters

javascript - Slick.js 自定义点

javascript - 如何通过从 canvasjs 中的 AJAX 调用获取输入来绘制具有对数刻度的图形

java - Java 中的 Matlab 元胞数组等效项

java - Spring 参数化 JUnit 测试 Serenity

java - jdbcTemplate执行完查询后如何在Spring Boot中关闭连接?

java - Android Studio 加载 xml 布局 View 时出现问题

java - Android/Java实现Runnable进入死循环

jquery - 在这种情况下我应该使用哪个 jQuery 类?