日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

MYSQL中 ENUM 类型

發布時間:2025/7/25 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MYSQL中 ENUM 类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MYSQL中 ENUM 類型的詳細解釋

ENUM類型

ENUM 是一個字符串對象,其值通常選自一個允許值列表中,該列表在表創建時的列規格說明中被明確地列舉。

在下列某些情況下,值也可以是空串("") 或 NULL

  • 如果將一個無效值插入一個 ENUM (即,一個不在允許值列表中的字符串),空字符串將作為一個特殊的錯誤值被插入。事實上,這個字符串有別于一個"普通的"空字符串,因為這個字符串有個數字索引值為 0。稍后有更詳細描述。
  • 如果一個 ENUM 被聲明為 NULLNULL 也是該列的一個合法值,并且該列的缺省值也將為 NULL 。如果一個 ENUM 被聲明為 NOT NULL,該列的缺省值將是該列表所允許值的第一個成員。

每個枚舉值均有一個索引值:

  • 在列說明中列表值所允許的成員值被從 1 開始編號。
  • 空字符串錯誤值的索引值為 0。這就意味著,你可以使用下面所示的 SELECT 語句找出被賦于無效 ENUM值的記錄行。 mysql> SELECT * FROM tbl_name WHERE enum_col=0;
  • NULL 值的索引值為 NULL

例如,指定為 ENUM("one", "two", "three") 的一個列,可以有下面所顯示的任一值。每個值的索引值也如下所示:

索引值
NULLNULL
""0
"one"1
"two"2
"three"3

換個枚舉最大可以有 65535 個成員值。

從 MySQL 3.23.51 開始,當表被創建時,ENUM 值尾部的空格將會自動刪除。

當為一個 ENUM 列賦值時,字母的大小寫是無關緊要的。然而,以后從列中檢索出來的值的大小寫卻是匹配于創建表時所指定的允許值。

如果在一個數字語境中檢索一個ENUM,列值的索引值將被返回。例如,你可以像這樣使用數字值檢索一個 ENUM 列:

mysql> SELECT enum_col+0 FROM tbl_name;

如果將一個數字存儲到一個 ENUM 中,數字被當作為一個索引值,并且存儲的值是該索引值所對應的枚舉成員。(但是,這在 LOAD DATA 將不能工作,因為它視所有的輸入均為字符串。) 在一個 ENUM 字符串中存儲數字是不明智的,因為它可能會打亂思維。

ENUM 值依照列規格說明中的列表順序進行排序。(換句話說,ENUM 值依照它們的索引號排序。)舉例來說,對于 ENUM("a", "b") "a" 排在 "b" 后,但是對于 ENUM("b", "a") "b" 卻排在 "a" 之前。空字符串排在非空字符串前,NULL 值排在其它所有的枚舉值前。為了防止意想不到的結果,建議依照字母的順序定義 ENUM 列表。也可以通過使用 GROUP BY CONCAT(col) 來確定該以字母順序排序而不是以索引值。

如果希望得到一個 ENUM 列的所有可能值,可以使用 SHOW COLUMNS FROM table_name LIKE enum_colum

轉載于:https://www.cnblogs.com/skillCoding/archive/2012/03/14/2395404.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的MYSQL中 ENUM 类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。