zoukankan      html  css  js  c++  java
  • SQL Server 枚举异或运算后值存入数据库,读取符合条件的值

    有枚举如下:

    [Flags]
        public enum Color
        {
            Red = 1,
            Green = 2,
            Blue = 4,
            White = 8
        }

    定义三个枚举变量,并将值存入数据库:

    Color color0=Color.Red;
    Color color1=Color.Red|Color.Blue;
    Color color2=Color.Red|Color.White;

    将color0(1)、color1(5)、color2(9)三个值存入数据库,通过SQL语句获取颜色中包含Red的所有数据行,读取方法可通过SQL位运算查询。

    SQL语句如下:

    SELECT * FROM TableName WHERE ColumnName & 1=1
    /*或者*/
    SELECT * FROM TableName WHERE ColumnName | 1=ColumnName

     判断是否包含指定枚举:

    | 符号,把所有二进制数据进行合并,有一个或两个1都返回1

    Color color1 = Color color1=Color.Red|Color.Blue; 等于 1|4,等于5

    则:

    color1|Color.Red; 等于5|1,等于5

    color1|Color.Bule; 等于5|4,等于5

    color1|Color.Green; 等于5|2,等于7

    color1|Color.White; 等于5|8,等于13

    if((color1 | Color.Red)==color1)// 或者 (color1 & Color.Red)==Color.Red
    {
        // 进入此处
        MessageBox.Show("包含Red");
    }
    else
    {
       
    }
    
    if((color1 | Color.White)==color1)// 或者 (color1 & Color.White)==Color.White
    {
       
    }
    else
    {
       // 进入此处
       MessageBox.Show("不包含White");
    }
  • 相关阅读:
    python高级特性和高阶函数
    代理模式及案例
    我的报错错误记录
    摘抄-编码规范
    测试java的Lambda语法
    测试IDEA将新建项目提交到github上
    js处理科学计数法
    测试java操作运算符
    java根据模板生成,导出word和pdf(aspose.words实现word转换pdf)
    sqlserver日期函数
  • 原文地址:https://www.cnblogs.com/ianunspace/p/6278223.html
Copyright © 2011-2022 走看看