java - 如何在 Spring Boot 的 MySql 查询中使用“LIKE field var%”中的变量?
问题描述
我在spring boot存储库中编写了这段代码,以根据用户提供的状态并从用户在前端搜索面板中输入的某个值开始获取clientInfo。但是查询中的 LIKE ':nameFilter%' 部分没有正确执行,并且查询返回 null。我怎样才能让它工作?
@SqlQuery("SELECT * FROM ClientInfo WHERE status = :status AND name LIKE ':nameFilter%' ORDER BY createdAt DESC LIMIT 10 OFFSET :page")
@RegisterBeanMapper(ClientInfo.class)
public List<ClientInfo> getClientInfoByStatusDESC(@Bind int page,String status,String orderBy,String nameFilter);
解决方案
您可以尝试CONCAT
使用 MySQL 的功能来将查询参数与其他参数结合起来。
LIKE CONCAT(:name, '%')
推荐阅读
- machine-learning - Monte Carlo Exploring Starts 如何运作?
- reactjs - React Native 存储图像以供离线使用
- html - 在 CSS 中使用 clear 属性后边距不起作用?
- java - 关于 Java 中数组“调整大小”的时间复杂度的问题
- asp.net - Razor / Blazor 页面 - 没有导航的表单和验证
- android - 应用程序项目到库项目转换中的“未指定模块”错误
- javascript - 在另一个文件中使用组件中的道具
- android - 以编程方式获取android视图的资源名称
- database - 如何从 1 个主键关系中获得 2 个不同的外键?
- java - s3 hadoop 错误:NoSuchMethodError:org.apache.hadoop.metrics2.lib.MetricsRegistry.newCounter