MySQL中的列舉

2021-08-21 21:55:26 字數 1609 閱讀 3442

列舉的數學定義:

在數學和電腦科學理論中,乙個集的列舉是列出某些有窮序列集的所有成員的程式,或者是一種特定型別物件的計數。這兩種型別經常(但不總是)重疊。 [1] 是乙個被命名的整型常數的集合,列舉在日常生活中很常見,例如表示星期的sunday、monday、tuesday、wednesday、thursday、friday、saturday就是乙個列舉。

列舉在mysql中:

enum是乙個字串物件,其值通常選自乙個允許值列表中,該列表在表建立時的列規格說明中被明確地列舉。

在下列某些情況下,值也可以是空串("") 或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

mysql 列舉字段 MySQL欄位中的列舉

mysql欄位相信大家都有一些了解,下面將為您介紹的是mysql欄位中的列舉,希望對您學習mysql欄位方面能夠有所幫助。mysql欄位中的列舉 mysql create table meiju f1 enum 1 2 3 4 5 6 query ok,0 rows affected 0.92 se...

mysql列舉統計 mysql 計算列舉值?

您可以像這樣執行三個查詢 select count from daily individual tracking where sales yes and daily individual tracking date between 2010 01 01 and 2010 03 31 或者,如果你想要...

mysql 列舉與集合 mysql列舉和集合型別

列舉和集合型別 列舉 enum 型別,最多可以定義 65535 種不同的字串從中做出選擇,只能並且必須選擇其中一種,占用儲存空間是乙個或兩個位元組,由列舉值的數目決定 集合 set 型別,最多可以有 64 個成員,可以選擇其中的零個到不限定的多個,占用儲存空間是乙個到八個位元組,由集合可能的成員數目...