Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中使用带like运算符和参数的select查询_Java_Mysql_Sql - Fatal编程技术网

在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('%', ?, '%');