MySQL SET數據類型


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM