在上一篇<Git.Framework 框架随手记--ORM新增操作>中简单记录了如何对数据进行删除和修改,其用法都非常简单,在文章中提到了Where()方法,本文将详述Where() 等条件函数。

 

  一. SQL 条件分析

    对于SQL每个人应该都很熟悉,这是基础的基础,如果没有使用过SQL的本文可以直接忽略了。先简单看看一个SQL语句,我们根据SQL语句的规则理解Where()方法

SELECT [ID],[UserName],[PassWord],[UserCode],[RealName],[Email],[Mobile],[Phone],[CreateTime],[CreateIp],[CreateUser],[LoginCount],[Picture],[UpdateTime],[IsDelete],[Status],[DepartNum],[ParentCode],[RoleNum],[Remark]
FROM [JooShowGit].[dbo].[Admin]
WHERE [UserCode]=@UserCode AND [IsDelete]=@IsDelete OR [Phone]=@Phone

    SQL语句中后面起始条件关键字必定是WHERE,这个毋庸置疑。如果后面要跟其他的条件我们就可以使用AND 或者 OR 关键字将其连接起来。SQL条件语句基本可以归纳为如下

SELECT * FROM TABLE WHERE [表达式] (AND|OR) [表达式] ....

    再看看一个稍微复杂点的SQL语句,代码如下

SELECT [ID],[UserName],[PassWord],[UserCode],[RealName],[Email],[Mobile],[Phone],[CreateTime],[CreateIp],[CreateUser],[LoginCount],[Picture],[UpdateTime],[IsDelete],[Status],[DepartNum],[ParentCode],[RoleNum],[Remark]
FROM [JooShowGit].[dbo].[Admin]
WHERE ([UserCode]=@UserCode1 OR [UserCode]=@UserCode2) AND [IsDelete]=@IsDelete

    语句是什么意思,看官一看就能够明白,我们看重点部分 ,这个SQL语句使用了 () 运算符, 两个条件 () 和  [IsDelete]=@IsDelete 使用AND连接的,在()运算符中又是多个单个表达式的组合。

    在看看单个表达式的效果

WHERE [UserCode]=@UserCode AND [IsDelete]=@IsDelete OR [Phone]=@Phone

    表达式可以抽象理解为  字段 [运算符] 值 这种情况。在SQL中有很多运算符,这里我们看看详细:

+(加)、―(减)、(乘)、(除)、%(取余)>(大于)<(小于)、= (等于)、>=(大于等于)、<=(小于等于)、<> (不等于)、!=(不等于)、!>(不大于)!<( 不小于)

    当然其他的运算符(AND OR 也称作运算符),我们先做一些简单的。

    以上问题说的比较含糊,表述可能不清晰,但是大家应该都能够明白其大概意思,从以上的比较可以看出其实SQL是有一定规则的。

 

  二. 框架中提供的条件方法

    在做ORM映射的过程中,我们对条件操作的运算符也做了相应的映射,其映射为了一个枚举值

public enum ECondition
    {
        /// <summary>
        /// AND
        /// </summary>
        //And =1 ,

        /// <summary>
        /// OR
        /// </summary>
        //Or =2 ,

        /// <summary>
        /// LIKE
        /// </summary>
        Like = 3,

        /// <summary>
        /// IN
        /// </summary>
        In = 4,

        /// <summary>
        /// 大于 >
        /// </summary>
        Gth = 5,

        /// <summary>
        /// 小于 <
        /// </summary>
        Lth = 6,

        /// <summary>
        /// 等于 =
        /// </summary>
        Eth = 7,

        /// <summary>
        /// 大于等于 >=
        /// </summary>
        Geth = 8,

        /// <summary>
        /// 小于等于 <=
        /// </summary>
        Leth = 9,

        /// <summary>
        /// 不等于 !=
        /// </summary>
        NotEth = 10,

        /// <summary>
        /// Is 关键字
        /// </summary>
        Is = 11,

        /// <summary>
        /// Is Not 关键字
        /// </summary>
        IsNot = 12,

        /// <summary>
        /// Between AND关键字
        /// </summary>
        Between = 13,

        /// <summary>
        /// OR LIKE
        /// </summary>
        OrLike = 14,

        /// <summary>
        /// OR IN
        /// </summary>
        OrIn = 15,

        /// <summary>
        ///  OR 字段>
        /// </summary>
        OrGth = 16,


        OrLth = 17,

        OrEth = 18,

        OrGeth = 19,

        OrLeth = 20,

        OrNotEth = 21,

        OrIs = 22,

        OrIsNot = 23,

        OrBetween = 24,

        /// <summary>
        /// +=
        /// </summary>
        AddEth=25,

        /// <summary>
        /// -=
        /// </summary>
        SubtractEth=26,

        /// <summary>
        /// *=
        /// </summary>
        MultiplyEth=27,

        /// <summary>
        /// /=
        /// </summary>
        DivideEth=28,

        /// <summary>
        ///  % 
        /// </summary>
        Modulo=29,

        /// <summary>
        /// +
        /// </summary>
        Add=30,

        /// <summary>
        /// -
        /// </summary>
        Subtract = 31,

        /// <summary>
        /// *
        /// </summary>
        Multiply = 32,

        /// <summary>
        /// /
        /// </summary>
        Divide=33
    }
ECondition 运算符枚举

相关文章:

  • 2021-10-26
  • 2021-12-20
  • 2021-05-31
  • 2022-02-09
  • 2021-07-10
  • 2022-12-23
  • 2021-11-16
  • 2022-12-23
猜你喜欢
  • 2021-06-13
  • 2022-01-15
  • 2021-08-26
  • 2022-02-21
  • 2021-06-14
  • 2022-01-16
  • 2021-06-17
相关资源
相似解决方案