java - 在 Java 中使用带有类似运算符和参数的选择查询

标签 java mysql sql

我想写这个查询:

SELECT * FROM products
WHERE name LIKE '%?%' 
OR description LIKE '%?%'

并在spring web application中通过java执行。但这里的问题是,当我使用 LIKE 运算符时,它必须与文字一起使用,但是当我编写 '%?%' 时,java 无法识别 ? 就像参数的占位符一样,当我添加参数时,我收到错误消息,指出我的查询中没有参数。

另外,如果我写 %?% 时没有文字,我会得到语法错误。

最佳答案

你总是可以使用concat():

SELECT *
FROM products
WHERE name LIKE CONCAT('%', ?, '%') OR
      description LIKE CONCAT('%', ?, '%');

或者使用应用程序将通配符放在模式字符串中。

关于java - 在 Java 中使用带有类似运算符和参数的选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44373846/

相关文章:

java - new File() 构造函数可以在 Android 上返回 null 吗?

mysql - 更改所有带前缀的表

mysql - Select涉及多对多表

php - UNION SELECTs - 循环?或单一查询?

php - 在 jquery 中处理分页的问题

javascript - 使用 Knex,如何将连接表的相关行作为嵌套对象给出?

java - 我可以覆盖通过组件扫描实例化的 spring bean 吗?

java - Spring + Tiles 3 JSP 未渲染

java - 如何防止绘制的形状在 Java 中消失?

php - 在上传到目录之前重命名图像