sqlenum
① sql enum类型
enum是枚举类型,sex性别字段加约束条件,默认是‘男’,插入数据时,sex字段只可以是'男'或'女',另外,MySQL不支持check的,虽然语法上不会报错是,分析建表语句的时候会被忽略.
② 如何在SQL中定义枚举类型
SQL 中通常是通过外键来实现的。
创建一个status表包含一个status列,其中存储那几个固定的状态。
然后给目前这个表添加外键约束。
ALTER TABLE tablename WITH CHECK ADD CONSTRAINT fk_status FOREIGN KEY([status])
REFERENCES [status] ([status])
③ 查询枚举型数据的SQL语句怎么写
int i = Convert.ToInt32( Session["Number"].ToString()); //这里得到枚举数量有多少 string temp = "shopid='"+Session["0"].ToString()+"'";//把第一个枚举元素保存到temp中 for (int k = 1; k < i+1; k ++ ) { temp += "or shopid='" + Session["" + k + ""].ToString()+"'"; //把后续枚举元素加到temp字符串后面 } //逐一读取并显示 string sql = "select * from tb_ShopCar where "+temp+"";//SQL语句,含变量 string table = "购买选中商品"; DataSet ds = MyClass.getDataSet(sql,table); this.GridView1.DataSource = ds; GridView1.DataKeyNames = new string[] { "shopid" }; this.GridView1.DataBind(); --------------------------------------------------------------------- 自己参考下我写的代码,这些代码是我自己用的,并没有全适合你。 可以自己改一下即可。最主要的还是前一半代码。
④ SQL查询枚举字段
eminportent在前台是个枚举选项,这里想显示汉字“VIP客户”的话,有2种方法:
用case when或if等条件语句。
casewhena.eminportent='...'then“VIP客户”else“NOTVIP客户”end
新建表做连接(推荐),即新建表,保存枚举的所有对应值,用的时候join就可以了