MySQL中or用法及mybatis or用法详解

 更新时间:2024年05月31日 17:19:03   作者:MissYou-Coding  
在SQL查询语句中,OR关键字用于连接两个或多个条件,表示满足其中一个条件即可,当使用OR时,如果第一个条件为真,则不会检查第二个条件;如果第一个条件为假,则会检查第二个条件,这篇文章主要介绍了MySQL中or用法及mybatis or用法总结,需要的朋友可以参考下

1.MySql中OR的用法

场景:筛选某表中,姓“张”并且为“组别1”或者是“组别2”的客户!(意在组1和组2中姓张客户的集合!)
错误sql:select * from 表 where name like ‘张%’ and group = ‘1’ or group = ‘2’;
错误原因:这里查的是组1中姓张的客户和组2的所有客户!
正确sql:select * from 表 where name like ‘张%’ and (group = ‘1’ or group =‘2’);
备注:要搞清楚是哪个条件和哪个条件“或”关系!
### 小结:
在SQL查询语句中,OR关键字用于连接两个或多个条件,表示满足其中一个条件即可。当使用OR时,如果第一个条件为真,则不会检查第二个条件;如果第一个条件为假,则会检查第二个条件。

例如,假设有一个名为employees的表,包含以下字段:id(员工ID)、name(员工姓名)和department(部门)。如果你想查询名字为"张三"的员工或者部门为"销售部"的员工,可以使用以下### 查询语句:SELECT * FROM employees WHERE name = '张三' OR department = '销售部';
这个查询语句将返回名字为"张三"的员工以及部门为"销售部"的员工的所有记录。

2.Mybatis中OR的用法

<if test="condition.labelFlagInt != null and condition.labelFlagInt.size() > 0">
    AND 1=1 AND
    <foreach collection="condition.labelFlagInt" item="flagInt" index="index">
        <choose>
            <when test="flagInt == 1">
                 (UNIX_TIMESTAMP(NOW()) &lt;= endTime AND ((endTime - UNIX_TIMESTAMP(NOW())) - ((endTime - createTime) * 0.2)) &gt;= 0)
            </when>
            <when test="flagInt == 2">
                 (UNIX_TIMESTAMP(NOW()) &lt; endTime AND (((endTime - UNIX_TIMESTAMP(NOW())) - ((endTime - createTime) * 0.2)) &lt;= 0))
            </when>
            <when test="flagInt == 3">
                 (UNIX_TIMESTAMP(NOW()) &gt;= endTime)
            </when>
        </choose>
        <if test="index &lt; condition.labelFlagInt.size() - 1">OR</if>
    </foreach>
</if>

这段代码的作用是根据condition.labelFlagInt列表中的值生成一个SQL查询语句的条件部分。具体来说:

  • condition.labelFlagInt是一个整数列表,表示不同的条件标志。
  • 如果condition.labelFlagInt不为空且其大小大于0,则执行以下操作:
    • 添加AND 1=1到查询语句中,这是一个恒成立的条件,确保至少有一个记录满足条件。
    • 使用<foreach>标签遍历condition.labelFlagInt列表中的每个元素。对于每个元素,根据其值选择相应的条件表达式。
  • 如果值为1,则生成一个条件表达式,判断当前时间是否在指定的时间范围内。
  • 如果值为2,则生成一个条件表达式,判断当前时间是否小于指定的时间范围。
  • 如果值为3,则生成一个条件表达式,判断当前时间是否大于等于指定的时间范围。
  • 在每个条件表达式之间添加OR关键字,表示满足任意一个条件即可。
  • 最后,如果还有更多的元素需要处理,则在最后一个条件表达式之后添加OR关键字。

这样,根据condition.labelFlagInt列表中的值,生成的查询语句将包含相应的条件表达式,用于筛选符合条件的记录。

到此这篇关于MySQL中or用法及mybatis  or用法总结的文章就介绍到这了,更多相关mysql or用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL复合查询和内外连接的操作代码

    MySQL复合查询和内外连接的操作代码

    实际开发中往往数据来自不同的表,所以需要多表查询,但是可以将多张表做笛卡尔积后的表当做是一张表,也就是单表查询,这篇文章主要介绍了MySQL复合查询和内外连接,需要的朋友可以参考下
    2022-09-09
  • 基于MySql验证的vsftpd虚拟用户

    基于MySql验证的vsftpd虚拟用户

    这篇文章主要介绍了基于MySql验证的vsftpd虚拟用户,文章包括mysql安装及ftp服务器安装过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-11-11
  • MySQL Flink Watermark实现事件时间处理的关键技术

    MySQL Flink Watermark实现事件时间处理的关键技术

    Flink Watermark是Flink流处理框架中实现事件时间处理的关键技术之一。它是通过一种机制来解决数据乱序和延迟的问题,使得Flink可以在处理迟到的数据时保证结果的准确性。Flink Watermark可以在数据流中插入一个时间戳,将数据流转化为具有时间维度的数据集合
    2023-05-05
  • 详细深入聊一聊Mysql中的int(1)和int(11)

    详细深入聊一聊Mysql中的int(1)和int(11)

    mysql数据库作为当前常用的关系型数据库,肯定会遇到设计表的需求,下面对设计表时int类型的设置进行分析,下面这篇文章主要给大家介绍了关于Mysql中int(1)和int(11)的相关资料,需要的朋友可以参考下
    2022-08-08
  • 小心陷阱!MySQL中处理Null时需注意两点

    小心陷阱!MySQL中处理Null时需注意两点

    这篇文章主要为大家介绍了MySQL中处理Null时需注意的两点,很关键的两点,大家千万要小心
    2016-06-06
  • 详解SUM函数在MySQL中的值处理原则

    详解SUM函数在MySQL中的值处理原则

    在SQL中,SUM函数是用于计算指定字段的总和的聚合函数,这篇文章将给大家详细介绍了SUM函数在SQL中的值处理原则,文中有详细的代码示例供大家参考,具有一定的参考价值,需要的朋友可以参考下
    2023-12-12
  • 数据库的用户帐号管理基础知识

    数据库的用户帐号管理基础知识

    数据库的用户帐号管理基础知识...
    2006-11-11
  • MySql新手入门的基本操作汇总

    MySql新手入门的基本操作汇总

    MySQL是目前来说最好的 RDBMS应用软件之一,这篇文章主要给大家介绍了关于MySql基本操作的相关资料,非常适合mysql新手入门,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • 关于MySQL索引的深入解析

    关于MySQL索引的深入解析

    这篇文章主要给大家介绍了关于MySQL索引的深入解析,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11
  • MySQL5.7主从复制详细配置教程

    MySQL5.7主从复制详细配置教程

    这篇文章主要介绍了MySQL5.7主从复制详细配置教程的相关资料,需要的朋友可以参考下
    2022-11-11

最新评论