我知道您可以在查询中对参数使用通配符,例如:
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;
但是没有用。
答案 0 :(得分:1)
您应该使用CONCAT
:
SELECT a.* FROM Year a WHERE :name LIKE CONCAT('%',a.name, '%');