首页 > 数据库技术 > 详细

MySQL SET数据类型

时间:2019-02-16 10:59:08      阅读:263      评论:0      收藏:0      [点我收藏+]

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数据类型

原文:https://www.cnblogs.com/wtsgtc/p/10387007.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!