将不确定变为确定~SQLSERVER是否可以进行位运算?

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
简介:

有时,我们在设计表结构时,有的字段可能同时具有几种状态,如小微自己的文件属性也是属于这种情况的,“只读,归档,隐藏”,但你对一个文件设置属性时,事实上是可以将这三个属性同时赋予一个对象的,这对于我们来说是正常的,那程序内部是怎么实现的呢?

首先一个枚举,SQL里可能是一张表,也可能是事先规定好的几个值,如: 只读1,归档2,隐藏3

再没有看.net源代码时,我认为可能是这样存储的

文件属性为只读+归档,值为:1,2

我们看到它是用,分开的,然后再分别去求和就可以了

但当我看了.net源代码后,我的作法有了一个变化,那就是利用位移运算,应该说从性能到程序清晰度上有一个飞跃

文件属性为只读+归档,值为:3 (3=1+2)

当然我们需要在数据库中查询出包含归档(2)的属性的记录时,如何去实现呢

其实,SQL与C#里的位移运算符号是完全相同的,它有以下几种情况

1 update User_Info set Status = Status | 8  where UserID = 1  --更新user_info里的status字段,在原有基础上增加8
2 
3 update User_Info set Status = Status & (~8) where UserID = 1 --更新user_info里的status字段,在原有基础上减去8,如果原来的值中不包含8,那会在原来的值上加上8 4 5 select * from User where Status & 8 >0 --找到所到包括8的记录

呵呵,怎么样,挺方便吧,这只是表面的,事实上,它在查询上性能也远远高于第一种拼接字符的方法。

本文转自博客园张占岭(仓储大叔)的博客,原文链接:将不确定变为确定~SQLSERVER是否可以进行位运算?,如需转载请自行联系原博主。

目录
相关文章
|
C语言
数据结构之栈详解(C语言手撕)
数据结构之栈详解(C语言手撕)
470 1
教大家用 Python 绘制几棵圣诞树~
今天分享五种用 Python 绘制圣诞树的方法,从基础到高级,效果也不断攀升分为 1 到 5 五个 Level 水平;
教大家用 Python 绘制几棵圣诞树~
|
搜索推荐 Shell
idea如何Ctrl + F查找内容,当前文件内容,Ctrl+R全局替换C t r l + S h i f t + R
idea如何Ctrl + F查找内容,当前文件内容,Ctrl+R全局替换C t r l + S h i f t + R
|
机器学习/深度学习 数据采集 人工智能
【机器学习】CLIP模型在有限计算资源下的性能探究:从数据、架构到训练策略
【机器学习】CLIP模型在有限计算资源下的性能探究:从数据、架构到训练策略
812 0
|
数据采集 搜索推荐 安全
谷歌外链怎么做?
答案是:谷歌SEO可以做GPB外链。 外链是网站SEO优化的重要组成部分,尤其是在谷歌搜索引擎中。 合理的外链策略不仅可以提高网站的搜索引擎排名,还能增加网站的可信度和知名度。 以下是一些实用的方法和策略,用于在谷歌中有效建立外链。
392 0
谷歌外链怎么做?
|
网络协议 测试技术 开发工具
大学生学计算机科学或者软件工程,未来有哪些职业发展路径?
@[TOC](目录) 计算机科学和软件工程是大学中非常受欢迎的专业,这两个专业涉及到许多技术和领域,因此有很多职业发展路径可供选择。以下是超过 20 种职业选择及其对应的技能要求: # 1. 软件开发工程师: 掌握编程语言,如 Java、Python、C++ 等;熟练掌握软件开发工具和技术,如 IDE、版本控制工具、测试工具等;具备良好的代码编写和架构设计能力。 # 2. 计算机网络工程师: 熟悉网络协议和架构,如 TCP/IP、HTTP、HTTPS 等;掌握网络管理和监控工具,如 Wireshark、Nagios 等;具备良好的故障排除和问题解决能力。 # 3. 数据库管理员: 熟悉数据库
909 0
|
数据可视化 JavaScript 前端开发
Android自动生成代码,可视化脚手架之环境搭建
目前可视化工具采用的是Electron进行开发的,Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台的桌面应用程序,它基于 Node.js 和 Chromium,被 Atom 编辑器和许多其他应用程序使用,也就是说使用Electron,您必须有一定的web开发经验,如果没有也没关系,后续您可以直接在我的模板中进行对应的修改即可,当然了,为了能够自己灵活的可视化,建议还是掌握一些Web的经验,编程语言之间的语法,基本互通,学起来也比较容易。
420 0
|
JavaScript API 容器
el-table两个表尾合计行联动同步滚动条代码
el-table两个表尾合计行联动同步滚动条代码
534 0

热门文章

最新文章