如何在 Spring Boot 的 MySql 查询中使用 'LIKE 字段变量%' 中的变量?



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

您只需要从LIKE语句中删除单引号:

@SqlQuery("SELECT * FROM ClientInfo WHERE status = :status AND name LIKE :nameFilter% ORDER BY createdAt DESC LIMIT 10 OFFSET :page")

您可以尝试CONCAT,这是MySQL的一个函数,用于将查询参数与其他参数组合。

LIKE CONCAT(:name, '%')

最新更新