MYSQL中 ENUM 類型的 查詢坑點

CREATE TABLE `address` (
  `is_default` enum('0','1') NOT NULL DEFAULT '0' COMMENT '1默認收貨地址',
) ENGINE=InnoDB AUTO_INCREMENT=8196 DEFAULT CHARSET=utf8 COMMENT='買家地址信息表';

 

查詢條件是enum類型的字段時,如果是想比較emun值就要傳字符串,enum類型每個枚舉的值都會有個隱形的索引,如果比較的值是整型將會引用enum索引對應的值,enum的索引以1開始,enum可以類比成PHP這樣的索引數組

[
    1 => '0', 枚舉值爲0
    2 => '1', 枚舉值爲1
]

以上數據表結構爲查詢實例:

where is_default = 1 //實際上在查詢時會轉換爲where is_default = '0'
where is_default = 2 //實際上在查詢時會轉換爲where is_default = '1'
where is_default = '0' //實際上在查詢時會轉換爲where is_default = '0'
where is_default = '1' //實際上在查詢時會轉換爲where is_default = '1'

 

聽說enum字段插入值爲整數時薈報錯,有待查證https://blog.csdn.net/u012643122/article/details/52643686

參考資料:https://www.cnblogs.com/skillCoding/archive/2012/03/14/2395404.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章