首页 > 数据库 >MyBatis中动态SQL判断等值的方式

MyBatis中动态SQL判断等值的方式

时间:2023-08-20 16:25:43浏览次数:46  
标签:gt 等值 示例 eq 如下 SQL MyBatis 写法

一般情况下在使用mybatis的动态SQL时,常用的是用来判空,如下:

<if test="userType != null and userType != ''">  
    <![CDATA[ and user_type = #{userType} ]]>  
</if>  

有时会遇到判断条件是某一个值的时候执行特殊的sql条件或语句,如下:

1.数值型

示例如下:

<if test="userType != null and userType == 2">  
    <![CDATA[ and xxxx > 1  ]]>  
</if>

2.字符型

示例如下:

<if test="userType != null and userType == '2'.toString()">  
    <![CDATA[ and xxxx > 1  ]]>  
</if>

注意: 当条件判断值是字符,即字符串的时候,推荐使用'abc'.toString()方式, 或者使用 userType eq 2 的形式也可

 

3.拓展
大于小于的写法

原含义 代替写法 英文全称 用法
< &lt; less than a.score &lt; '60'
> &gt; greater than a.score &gt; '0'
= eq equal type eq 1
& &amp;    
&apos;    
" &quot;    

第二种写法:

<if test="type eq 1 ">
	(  ssc.status= '2' OR  ssc.exam_source = '4'  )
</if>

 

标签:gt,等值,示例,eq,如下,SQL,MyBatis,写法
From: https://www.cnblogs.com/qiushuiyu-108/p/17339203.html

相关文章

  • mysql 根据字段值显示不同内容,case when的使用
    在表中的数据很多类型或状态保存的内容往往是1,2,3等字符或数字来代表不同的含义.有时候使用sql查询不希望输出的是数字而是对应的字符串,这时就可以使用casewhen来进行多条件显示具体如下:SELECTid,code,CASEWHENtype='1'THEN'小'WHENtype='2'THEN'中'ELSE'大'E......
  • sqlite 实现分页排序
    版本号MacOSAppleM1|Jdk17|Maven3.8.5|SpringBoot2.6.9|内嵌式Sqlite3.42.0.0Pageable使用方式findAll()importorg.springframework.data.domain.Page;importorg.springframework.data.domain.PageRequest;importorg.springframework.data.domain.Pageabl......
  • Springboot 内嵌 Sqlite 配置使用
    版本号MacOSAppleM1|Jdk17|Maven3.8.5|SpringBoot2.6.9|Sqlite3.42.0.0pom.xml<dependencies><dependency><groupId>org.xerial</groupId><artifactId>sqlite-jdbc</artifactId>......
  • MySQL中查询和事务的大小
    有时候了解事务的大小非常重要,尤其是当计划迁移到HA环境,为了保证集群的最佳性能,事务的大小是有限制的。这里来尝试分析一下了解事务大小的不同方法。首先要将事务分成两种类型:1.生成数据的事务(写操作,比如insert、delete、update等DML操作)2.只读的事务(查询操作)在HA环境,第一......
  • SQL
    1.SQL(结构化查询语言)DDL:数据定义语言DML:数据操作语言DCL:数据控制语言DQL:数据查询语言 2.DBMS(数据库管理系统)RDBMS:关系型数据库管理系统二元关系模型(表格形式)Oracle、MYSQL、SQLserver、db2NoSQL:非关系型数据库管理系统弥补关系型数据库系统的不足 3.MYSQL关系型......
  • MySql Workbench 迁移工具 migration 提示缺少pyodbc 2.1.8 的解决方法
    想把公司的数据库转到MySQL,所以想装个MySQL测试,发现新版的MySQL(8.0.34)默认安装还是有不少问题,##一、譬如表、字段大小写的问题:lower_case_table_names=0--表名存储为给定的大小和比较是区分大小写的(linux默认)lower_case_table_names=1--表名存储在磁......
  • SQL Server游标
    文章来源:SQLServer游标-张龙豪-博客园(cnblogs.com) --5.利用游标更新删除数据---游标更新删除当前数据---1.声明游标declareorderNum_03_cursorcursorscrollforselectOrderId,userIdfrombigorderwhereorderNum='ZEORD003402'--2.打开游标openorder......
  • 为什么NoSQL不支持事务
    为什么NoSQL不支持事务1.背景看书《Neo4j权威指南》的时候,发现个问题:日常的NoSQL都不支持事务(ACID)。2.问题事务对数据的存储过程是有利的,既然事情是有利的,理论上存储型数据库都应该支持事务。但事实上是只有很少的一部分数据库支持事务,比如MySQL,Neo4j,并且MySQL也只有部分存......
  • rhel 6.5搭建MySQL 5.5.18一主一从高可用架构
    文档课题:rhel6.5搭建MySQL5.5.18一主一从高可用架构.系统:rhel6.564位数据库:MySQL5.5.18数据库安装包:mysql-5.5.18.tar.gzXtrabackup安装包:percona-xtrabackup-24-2.4.6-2.el6.x86_64.rpm架构信息如下:1、主从搭建1.1、前期准备安装两台MySQL数据库主机后,配置好主机IP地......
  • MysSQL 行转列以及列转行(学生的各科成绩,以及总分和平均分)
    一、行转列即将原本同一列下多行的不同内容作为多个字段,输出对应内容。1.建表语句--新建学生成绩表DROPTABLEIFEXISTStb_score;createtabletb_score(idint(11)notnullauto_increment,user_noVARCHAR(32)notnullcomment'学生工号',subject......