1. 程式人生 > >MySQL SET數據類型

MySQL SET數據類型

分隔 eat incr creat enum 不同 color value obb

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‘比較返回的結果不同。指定值時的順序應與在列定義中所列的順序相同。

MySQL SET數據類型