Welcome to the website navigation,本站只接受合法正规的企业网站,欢迎站长们提交你的网站获得展示和流量有任何问题请联系站长,欢迎大家加入本站。

                
提交网站
  • 网站:76083
  • 待审:5
  • APP:577
  • 文章:304411
  • 会员:56004
文字内链包年1000元 文字内链包年1000元 文字内链包年1000元 AI办公网站 AI绘画工具 AIchat

名站网址导航为大家提供关于数据库教程相关的教程网站知识。

SQL数据库语句的执行原理分析q1DAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

q1DAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

无论使用int还是varchar,对于Status的多选查询都是不易应对的。举例,常规思维下对CustomerStatus的Enum设置如下:

复制具体相关代码 具体相关代码如下:q1DAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


[Serializable]
public enum CustomerStatus
{
New = 0,
Active = 1,
Overdue = 2,
Suspended = 3,
Closing = 4,
Closed = 5
}
q1DAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


在网站数据库中以int形式存储了Status值。
假如如果我在页面中想一次搜索状态为Active,Overdue和Suspended状态的Customer,该怎么办?程序是不是得把这三个状态值
拼成字符串传递给SQL去处理?虽然能实现,但是相当低效。

现在给出一个标准解决方案:
(1). 所有可能被用作搜索条件的枚举都应按如下位运算相关方式定义。

复制具体相关代码 具体相关代码如下:q1DAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


public enum CustomerStatus
{
New = 1,
Active = 1<<1,
Overdue = 1<<2,
Suspended = 1<<3,
Closing = 1<<4,
Closed = 1<<5
}
q1DAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


(2). 在网站数据库设计时,Status的字段必须为int型。
这样当咱们做多选查询时@Status的Value= CustomerStatus.Active | CustomerStatus. Overdue| CustomerStatus. Suspended

(3). 查询数据库语句如下:

复制具体相关代码 具体相关代码如下:q1DAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


Select *
From Customer
Where [Status] & @Status = [Status]
q1DAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


假如如果@Status可为null时,

复制具体相关代码 具体相关代码如下:q1DAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


Select *
From Customer
Where ( @Status is null Or [Status] & @Status = [Status])
q1DAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


用这样一条简单的数据库语句,就可以获取到所有符合@Status要求的数据行。 关于数据库教程相关的教程网站知识今天我们就说到这里了,希望可以帮到大家。

标签:

分享到:

  网友投稿

注册时间:

网站:0 个   APP:0 个  文章:0 篇

  • 76083

    网站

  • 577

    APP

  • 304411

    文章

  • 56004

    会员

赶快注册账号,推广您的网站吧!
文章分类
热门网站
最新入驻APP小程序

宝贝市场2023-02-08

宝贝市场——买手和卖家商品展示

夺宝助手2023-02-08

夺宝助手小程序,查看每日快夺宝平

查诚信2023-02-08

查诚信是一款免费的商业查询工具

车价天天报2023-02-08

快速连接汽车销售,获知汽车最新报

考勤助理小程序2023-02-08

上班签到考勤,实时定位,后台轻松

汽车报价大全查询2023-02-08

汽车报价大全查询提供最新汽车市