Mybatis对MySQL if 函数的不支持问题解读

 更新时间:2025年12月11日 14:06:50   作者:筱筱木  
接手项目后,为了实现多租户功能,引入了Mybatis-plus,发现之前运行正常的SQL语句报错,原因是Mybatis不支持MySQL的if函数,通过查询资料,将SQL中的if函数替换为case语句,解决了问题

Mybatis对MySQL if 函数的不支持

问题描述

接手之前同事写的一个项目之前运行的没有什么问题,后面为了使用多租户的功能于是就引用了Mybatis-plus结果发现之前的sql语句执行报错

SELECT
       DISTINCT t.*,if(a.id is null,1,0) flag
        FROM
            ** t
        left join *** a on a.*= t.*
        where 1=1

报错内容:

Cause: com.baomidou.mybatisplus.exceptions.MybatisPlusException: Failed to process, please exclude the tableName or statementId. 

经过查询网上搜索资料找到原因

是因为Mybatis对MySQL的if函数不支持导致的。

解决方案

修改之前的SQl语句 使用case代替

SELECT
       DISTINCT t.*,CASE WHEN a.id is NULL THEN '1' ELSE '0' END as flag
        FROM
            ** t
        left join *** a on a.*= t.*
        where 1=1

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java设计模式之访问者模式使用场景及代码示例

    Java设计模式之访问者模式使用场景及代码示例

    这篇文章主要介绍了Java设计模式之访问者模式使用场景及代码示例,小编觉得还是挺不错的,这里分享给大家,供需要的朋友参考。
    2017-11-11
  • SpringBoot整合sharding-jdbc实现分库分表与读写分离的示例

    SpringBoot整合sharding-jdbc实现分库分表与读写分离的示例

    本文主要介绍了SpringBoot整合sharding-jdbc实现分库分表与读写分离的示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • AntDesign封装全局异常处理全局拦截器

    AntDesign封装全局异常处理全局拦截器

    这篇文章主要为大家介绍了AntDesign封装全局异常处理全局拦截器,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • java ZipFile如何将多级目录压缩

    java ZipFile如何将多级目录压缩

    这篇文章主要介绍了java ZipFile如何将多级目录压缩问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Java Listener监听器使用规范详细介绍

    Java Listener监听器使用规范详细介绍

    监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变
    2023-01-01
  • Elasticsearch8.1中的Script使用实例深入解读

    Elasticsearch8.1中的Script使用实例深入解读

    这篇文章主要为大家介绍了Elasticsearch8.1中的Script使用实例深入解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • SpringBoot静态资源css,js,img配置方案

    SpringBoot静态资源css,js,img配置方案

    这篇文章主要介绍了SpringBoot静态资源css,js,img配置方案,下文给大家分享了三种解决方案,需要的朋友可以参考下
    2017-07-07
  • Spring Boot 2.5.0 重新设计的spring.sql.init 配置有啥用

    Spring Boot 2.5.0 重新设计的spring.sql.init 配置有啥用

    前几天Spring Boot 2.5.0发布了,其中提到了关于Datasource初始化机制的调整,有读者私信想了解这方面做了什么调整。那么今天就要详细说说这个重新设计的配置内容,并结合实际情况说说我的理解和实践建议
    2021-05-05
  • Java中将String类型转换为int类型的几种常见方法

    Java中将String类型转换为int类型的几种常见方法

    在java中经常会遇到需要对数据进行类型转换的场景,这篇文章主要给大家介绍了关于Java中将String类型转换为int类型的几种常见方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • Spring Security自定义异常 AccessDeniedHandler不生效解决方法

    Spring Security自定义异常 AccessDeniedHandler不生效解决方法

    本文主要介绍了Spring Security自定义异常 AccessDeniedHandler不生效解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论