欢迎来到代码驿站!

当前位置:首页 >

Mysql SET(集合类型) 数据类型详解

时间:2020-05-24 10:33:51|栏目:|点击:
SET是一个字符串对象,可以有零或多个值,其值来自表创建时规定的允许的一列值。指定包括多个SET成员的SET列值时各成员之间用逗号(‘,’)间隔开。这样SET成员值本身不能包含逗号。set的容纳范围为64个不同的成员。set其实和枚举差不多,set指定了一个集合范围,在我们插入数据的时候,需要插入在set范围之内的元素,如果插入了未被包含的元素,那么就会发出警告:
CREATE TABLE myset (col SET('a', 'b', 'c', 'd'));//新建表格
INSERT INTO myset (col) VALUES ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');
select col from myset;//索引值全部显示'a,d';
insert into myset (col) values('a,b,s');//会发出警告,并且s不会被插入到表格当中
select col from myset;

也可以使用find_in_set()或like修饰符来搜索set值。

mysql> SELECT * FROM tbl_name WHERE FIND_IN_SET('value',set_col)>0;
mysql> SELECT * FROM tbl_name WHERE set_col LIKE '%value%';
//第1个语句找出SET_col包含value set成员的行。第2个类似,但有所不同:它在其它地方找出set_col包含value的行,甚至是在另一个SET成员的子字符串中。

//下面的语句也是合法的:
mysql> SELECT * FROM tbl_name WHERE set_col & 1;
mysql> SELECT * FROM tbl_name WHERE set_col = 'val1,val2';
//第1个语句寻找包含第1个set成员的值。第2个语句寻找一个确切匹配的值。应注意第2类的比较。将set值与'val1,val2'比较返回的结果与同'val2,val1'比较返回的结果不同。指定值时的顺序应与在列定义中所列的顺序相同。

当然可以像对待字符串一样用link 不过,还是推荐使用FIND_IN_SET。

上一篇:vue + webpack 项目环境搭建

栏    目:

下一篇:R语言ggplot2边框背景去除的实现

本文标题:Mysql SET(集合类型) 数据类型详解

本文地址:http://www.codeinn.net/misctech/2287.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有