在java中使用带like运算符和参数的select查询
我想写这个查询:在java中使用带like运算符和参数的select查询,java,mysql,sql,Java,Mysql,Sql,我想写这个查询: SELECT * FROM products WHERE name LIKE '%?%' OR description LIKE '%?%' 并在SpringWeb应用程序中通过java执行。但这里的问题是,当我使用LIKE运算符时,它必须与文本一起使用,但当我编写“%?%”时,java无法识别?LIKE占位符作为参数,当我添加参数时,我得到的错误是查询中没有参数 另外,如果我写的%?%没有文字,我会得到语法错误。您可以始终使用concat(): 或者使用应用程序将通配符放
SELECT * FROM products
WHERE name LIKE '%?%'
OR description LIKE '%?%'
并在SpringWeb应用程序中通过java执行。但这里的问题是,当我使用LIKE
运算符时,它必须与文本一起使用,但当我编写“%?%”
时,java无法识别?
LIKE占位符作为参数,当我添加参数时,我得到的错误是查询中没有参数
另外,如果我写的
%?%
没有文字,我会得到语法错误。您可以始终使用concat()
:
或者使用应用程序将通配符放在模式字符串中。为什么不能使用“%:name%”和“%:description%”,更好、更可读,并解决您的问题
SELECT *
FROM products
WHERE name LIKE CONCAT('%', ?, '%') OR
description LIKE CONCAT('%', ?, '%');