gpt4 book ai didi

java - 如何在 LIKE 运算符中使用占位符 '?'?

转载 作者:行者123 更新时间:2023-11-29 01:19:33 24 4
gpt4 key购买 nike

我正在开发一个以 MySQL 作为后端的基于 Java 的桌面应用程序。在此应用程序中,有一个名为“搜索”的部分,其中有四个字段 - 关键技能(文本字段)、经验(组合框)、城市(组合框)和通知期(组合框)。这四个字段的值都将在运行时提供。关键技能是逗号分隔值。我想要一个使用 LIKE 运算符的 MySQL 查询,借助它我不必每次都在关键技能文本字段中提供逗号分隔值。我只在运行时提供一个值,查询将根据该值使用 LIKE 运算符获取结果。我的查询如下所示

我使用了占位符 '?'因为我的查询是动态类型。是否可以在 LIKE 运算符中使用占位符,还是仅适用于静态类型查询?

String query = "SELECT F_Name, L_Name, Experience, Key_Skills, 
FROM Candidate cd
JOIN Candidate2 cd2 ON(cd.Mobile = cd2.C_Mobile)
WHERE Key_Skills LIKE '%?%'";

当我执行上面的查询时,它产生了一个错误说明 - 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本服务器版本相对应的手册,了解在第 1 行的“FROM Candidate cd JOIN Candidate2 cd2 ON(cd.Mobile = cd2.C_Mobile) WHERE Key_Skills”附近使用的正确语法

最佳答案

您可以使用 concat() :

String query = 
"SELECT F_Name, L_Name, Experience, Key_Skills " +
"FROM Candidate cd JOIN Candidate2 cd2 ON (cd.Mobile = cd2.C_Mobile) " +
"WHERE Key_Skills LIKE concat('%', ?, '%')";

当你通过传递一个参数 say 'someskill' 来执行上面的代码时,函数 concat() 将生成这个字符串 '%someskill%' 和列 Key_Skills 将与这个连接的字符串进行比较。

关于java - 如何在 LIKE 运算符中使用占位符 '?'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55901698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com