SET:
多選字符串數據類型,適合存儲“多個值”。
設定set的時候,同樣需要設定“固定的幾個值”;存儲的時候,可以存儲其中的若干個值。
設定set的格式:
字段名稱 SET("選項1","選項2",...,'選項n')
同樣的,set的每個選項值也對應一個數字,依次是1,2,4,8,16...,最多有64個選項
使用的時候,可以使用set選項的字符串本身(多個選項用逗號分隔),也可以使用多個選項的數字之和(比如:1+2+4=7)
--1.創建及插入 /* 創建表格 */ create table set_table( id int auto_increment primary key, hobby set('music','movie','swimming','footbal') ); /* 使用選項的字符串格式 */ insert into set_table(id,hobby) values(null,'M','music'); /* 使用選項的字符串格式 */ mysql> insert into enum_set_table(id,hobby) values(null,'F','music,movie,footbal'); /* 使用選項的數字格式 */ insert into set_table(id,hobby) values(null,1); /* 使用選項的數字格式,15=1+2+4+8 <=> 'music,movie,swimming,footbal' */ insert into set_table(id,hobby) values(null,15); /* 查詢結果 */ select * from enum_set_table; --2.查詢 --找出SET_col包含value set成員的行。 SELECT * FROM tbl_name WHERE FIND_IN_SET('value',set_col)>0; --在其它地方找出set_col包含value的行,甚至是在另一個SET成員的子字符串中。 SELECT * FROM tbl_name WHERE set_col LIKE '%value%'; --尋找包含第1個set成員的值。 SELECT * FROM tbl_name WHERE set_col & 1; --尋找一個確切匹配的值。 SELECT * FROM tbl_name WHERE set_col = 'val1,val2'; --應注意將set值與'val1,val2'比較返回的結果與同'val2,val1'比較返回的結果不同。指定值時的順序應與在列定義中所列的順序相同。