在mybatis中使用case when进行条件筛选判断时遇到

Failed to process, please exclude the tableName or statementId.

这样的报错信息,报错的信息是语法错误

但是我在mysql的命令行中运行sql语句是没问题的

//我的case when语句

WHERE dept.type = 1

AND

(

CASE agent.dept_type

WHEN "agent" THEN dept.id=30

END

)

//当agent的dept_type为"agent"时,将添加dept.id = 30的判断

这段sql语句在命令行内运行没问题但是放到mybatis上执行就会报错

//修改后

WHERE dept.type = 1

AND dept.id=

(

CASE agent.dept_type

WHEN "agent" THEN 30

END

)

后来将dept.id放到外面就解决了这个问题

20190718-补充记录 :遇到另一个问题,如果dept这个表是联查来的有可能会没有数据,在dept无数据的时候我们就无法给dept.id赋上啥参数了,并且不可以影响原表数据的查询,我改成了下面这样:

//修改后

WHERE dept.type = 1

AND (dept.id=

(

CASE agent.dept_type

WHEN "agent" THEN 30

ELSE 0

END

) or dept.id is null)

添加dept.id为空的判断即可

(在mysql语句里可以有很多方法解决,但是在mybatis上就会报错 -_-||)

2019-7-30-补充说明:

如果是空字符串不可以使用""要改成单引号''

CASE WHEN *** THEN ***

ELSE "" =>这样也会报错,需要改成=> ELSE''

补充:Mybatis case when test 注意事项

p_id areaId,

c_id areaId,

r_id areaId,

test 中 用 == 不能用 = ,否则报错。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

case mybatis 不同表_解决mybatis case when 报错的问题相关推荐

  1. python安装报错类型_解决Python安装cryptography报错问题

    解决Python安装cryptography报错问题 错误一: gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wst ...

  2. java fastjson 泛型_解决fastjson泛型转换报错的解决方法

    错误信息 Exception in thread "main" java.lang.ClassCastException: com.alibaba.fastjson.JSONObj ...

  3. python打开文件报错无效序列_解决Python 写文件报错TypeError的问题

    处理上传的文件: f1 = request.FILES['pic'] fname = '%s/%s' % (settings.MEDIA_ROOT, f1.name) with open(fname, ...

  4. python连接数据库mysql失败_解决python连接mysql报错问题

    解决python连接mysql报错问题 最近跑python脚本时遇到一个问题,当sql语句中有中文时,执行python脚本报以下错误: Traceback (most recent call last ...

  5. python运行启动报错解决方法_解决python运行启动报错问题

    解决python运行启动报错问题 问题一: python启动报错api-ms-win-crt-process-l1-1-0.dll丢失 解决: 下载api-ms-win-crt-process-l1- ...

  6. long类型转成integer类型避免空指针的方法_解决swagger的类型转换报错问题

    今天发现项目启动时,会打印一堆报错.吓了一跳. 查看之后发现是swagger的错误提示.并不影响功能.但是看着一堆错误,也闹心不是? 所以还是要解决一下. 2020-11-04 10:50:46,38 ...

  7. python mysqldb安装_解决centos7 安装MySQLdb-python 报错 方案

    运行 pip install MySQL-Python 报错: 云服务器 Command python setup.py egg_info failed with error code 1 in 继续 ...

  8. mysql封装执行_解决Mysql封装类执行报错——Mysql::insert() should not be called

    今天在写程序的时候使用了别的程序员写的一个Mysql封装类,但是执行后php会报错:Strict standards: Non-static method Mysql::insert() should ...

  9. ueditor上传图片回调_(常见解决方法)UEditor报错“后端配置项没有正常加载,上传插件不能正常使用”...

    (常见解决方法)UEditor报错"后端配置项没有正常加载,上传插件不能正常使用"_向来萧瑟也无畏-CSDN博客​blog.csdn.net 报错信息 详见此文的"排错过 ...

最新文章

  1. CSS使用浮动属性和边距设计3行3列定宽的布局实例
  2. ASIHTTPRequest的环境配置和使用示例
  3. 电脑显示器变色_两千元档超强电竞小金刚:180hz的泰坦军团T27QR显示器
  4. ActiveMQ添加商品发送消息
  5. Django 与ajax交互
  6. 如何在maven的setting.xml中指定jdk版本(详细步骤)
  7. leetcode 515. 在每个树行中找最大值(层序遍历06)
  8. spring连接jdbc_在Spring JDBC中添加C3PO连接池
  9. My new iMac 27
  10. 计算机应用基础山东大学,山东大学计算机应用基础
  11. 合肥师范学院计算机操作系统期末考试题,2005级操作系统期末试卷A卷及答案
  12. PPDE三星私有协议
  13. 各大市场应用上架整理
  14. 实战使用pano2vr生成html5全景页面
  15. PDCA过程模式在信息安全管理体系的应用
  16. windwos11降级,重装Windows10
  17. 使用nginx代理实现前后端分离开发调试,零基础教程
  18. android 动态库符号表,Android NDK隐藏jni动态库的内部符号表
  19. TX2(Ubuntu16.04)安装TP-link外接网卡驱动及AP热点创建
  20. Web基础-JSON和AJAX

热门文章

  1. 机器学习的练功方式(十)——岭回归
  2. 浮动的清除 -- 四种方法
  3. win7 下的 cmdhere 及其他
  4. React开发(206):react代码分割之context的api
  5. React开发(202):react代码分割之import导入导出
  6. React开发(172):React引入背景图片
  7. Taro+react开发(57) 图片引入
  8. 前端学习(3030):vue+element今日头条管理-顶部导航栏布局
  9. 前端学习(2938):vue对象之间的实例属性ref
  10. [html] 为什么我们要使用web workers?