如何在数据库变量而不是查询中输入的参数上使用通配符(%)?

时间:2019-06-19 18:17:23

标签: mysql spring-data-jpa

我知道您可以在查询中对参数使用通配符,例如:

 if (req.headers && req.headers.has('metadata'))

,在该查询中,如果a.name ='first'和:name ='fir',那将是一个匹配项。

我所需要的恰恰相反。用户可以输入“ first”。 (带有空格,逗号或错字),我需要将其作为匹配项。我需要在数据库变量中使用通配符%。

我尝试直接在类似这样的变量上使用通配符:

SELECT a FROM Year a WHERE a.name LIKE %:name%;

还有:

SELECT a FROM Year a WHERE '%' + a.name + '%' LIKE :name;

但是没有用。

1 个答案:

答案 0 :(得分:1)

您应该使用CONCAT

SELECT a.* FROM Year a WHERE :name LIKE CONCAT('%',a.name, '%');