当前位置: 首页 > 知识库问答 >
问题:

此 sql 查询有什么问题导致此错误?

司空均
2023-03-14

这个查询有什么问题?

" where mh.parent_id = ? "+ (roleIds != null ? " or mh.role_id in (" + roleIds + ")" : "") +

错误消息:

PreparedStatementCallback;错误的SQL语法[选择u.id,u.user_id,count(不同的pf.id),IfNULL(upm.apprum_autoassign_enable,true)来自用户u内部连接user_roles-ur-on-ur.user_ id=u.id左外部连接user_preference_management-on-u.id=upm.id内部连接管理层mh-on-child_id=u或mh.role_id=u(jtpm4_task jt内部连接进程_flow pf on pf.pid=jt.execution_id_。其中mh。parent_id=?或mh。在({role_id=2},{rolle_id=4},}role\u id=1},{role_ id=8},_roleUid=38}、{roles_id=22}、}rolle\u id=69})组中按u.id、u。用户id按计数排序(pf.id)];嵌套异常是com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第1行“=2}、{role_id=4}、{role_ id=1}、}role\u id=8}、{-roleUid=38}、{-role\U id=22}、{.role单元id=69}”附近使用的正确语法

共有1个答案

何涵忍
2023-03-14

问题是您的字符串<code>roleIds</code>,它似乎是JSON符号。SQL<code>的正确语法,其中,..in<code>语句是逗号分隔的。

使您的查询看起来更像这样:

 . . . where mh.parent_id = ? or mh.role_id in (2,4,1,8,38,22,69) group by . . .
 类似资料:
  • 问题内容: 我在SQL Server 2008 R2数据库上具有以下表结构: 我在表格FormTest中填写了以下信息 最后,我运行此sql查询: 但是后来我得到了这些结果: 有人可以告诉我我在做什么错吗? 问题答案: 这是因为您正在执行整数除法。您应使用以下方法将其中一个操作数转换为浮点数或十进制(取决于您进行的计算的精度和目的): 或可能:

  • 问题内容: 我有一个无法执行的SQL查询: 该表的PK为(int)。该视图是对该表的查询,该表与其他一些表结合在一起以决定我们是否信任某个人。该视图只有一列:。 当我尝试执行此查询时,出现以下错误: 消息209,级别16,状态1,第3 行列名称“ CreatedDate”不明确。 我知道这个错误告诉我列名是不明确的,我需要在表的别名’p’开头。 该查询有效: 我不明白的是为什么我需要在语句中而不是

  • 问题内容: 我正在尝试在托管bean中进行更新查询。这是代码: 我看到参数设置正确,好像查询中有错误。它进入捕获块。另外,我不知道如何查看堆栈跟踪,e.printStackTrace在这里不起作用,我怎么看?可以帮忙吗? 谢谢 问题答案: 尝试使用executeUpdate而不是executeQuery。我在执行数据库更新时看到了executeQuery的奇怪问题。

  • 问题内容: 此SQL查询是由SQL Server Managment Studio生成的,它引发了一个错误: 错误是:指向但我觉得这行没问题。 有什么事吗 编辑: 我只是注释掉 现在可以了,为什么呢? 编辑2: 我将其范围缩小到: 我在这里想念什么吗? 问题答案: 我认为这取决于SQL Server数据库版本。 我尝试对SQL Server 2000数据库使用SSMS 2005进行查询,但由于您描

  • 问题内容: 我正在编写一个PL / SQL过程,该过程需要动态生成一些查询,其中之一涉及使用来自查询的结果作为参数来创建临时表。 它可以正确编译,但是即使使用非常简单的查询,例如: IT抛出。如果我手动运行创建的查询,它将正确运行。在这一点上,我能够确定是什么导致了问题。 问题答案: 尝试丢掉“;” 从您立即执行的字符串内部。

  • null 是什么原因造成了这一点?我是不是形成了一个错误的pfx文件?