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就可以了