首页
学习
活动
专区
圈层
工具
发布

mysql中set的意思

在MySQL中,SET 关键字具有多种用途,具体取决于上下文。以下是 SET 的一些主要用法及其相关概念、优势、类型、应用场景以及可能遇到的问题和解决方法。

1. 设置变量

SET 可用于设置用户定义的变量或会话变量。

示例:

代码语言:txt
复制
SET @myVariable = 10;

应用场景:

  • 在存储过程或函数中传递参数。
  • 在复杂查询中存储中间结果。

2. 修改系统变量

SET 也可以用于修改MySQL的系统变量。

示例:

代码语言:txt
复制
SET GLOBAL innodb_buffer_pool_size = 2147483648;

优势:

  • 可以动态调整数据库配置,无需重启MySQL服务。

应用场景:

  • 调整性能参数以优化数据库性能。

常见问题及解决方法:

  • 权限问题:修改全局变量需要管理员权限。
  • 权限问题:修改全局变量需要管理员权限。
  • 变量值超出范围:确保设置的值在允许范围内。

3. 设置事务隔离级别

SET 可用于设置事务的隔离级别。

示例:

代码语言:txt
复制
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;

类型:

  • READ UNCOMMITTED
  • READ COMMITTED
  • REPEATABLE READ
  • SERIALIZABLE

应用场景:

  • 根据应用需求选择合适的隔离级别以平衡性能和数据一致性。

常见问题及解决方法:

  • 隔离级别冲突:确保所有涉及的事务使用相同的隔离级别。
  • 隔离级别冲突:确保所有涉及的事务使用相同的隔离级别。

4. 设置字符集和排序规则

SET 可用于设置字符集和排序规则。

示例:

代码语言:txt
复制
SET NAMES 'utf8mb4';

优势:

  • 确保数据正确存储和显示,支持多语言。

应用场景:

  • 处理多语言数据时设置正确的字符集和排序规则。

常见问题及解决方法:

  • 字符集不匹配:确保数据库、表和列的字符集一致。
  • 字符集不匹配:确保数据库、表和列的字符集一致。

总结

SET 关键字在MySQL中具有多种用途,包括设置变量、修改系统变量、设置事务隔离级别和设置字符集等。正确使用 SET 可以帮助优化数据库性能、确保数据一致性和支持多语言处理。在使用过程中,需要注意权限、变量值范围、隔离级别冲突和字符集匹配等问题,并采取相应的解决方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • MySQL中SET类型学习--MySql语法

    对于二进制或大小写敏感的校对规则,当为列分配值时应考虑大小写。 MySQL用数字保存SET值,所保存值的低阶位对应第1个SET成员。...例如,你可以这样从一个SET列检索数值值: mysql> SELECT set_col+0 FROM tbl_name; 如果将一个数字保存到SET列中,数字中二进制表示中的位确定了列值中的SET成员。...对于包含多个SET元素的值,当插入值时元素所列的顺序并不重要。在值中一个给定的元素列了多少次也不重要。当以后检索该值时,值中的每个元素出现一次,根据表创建时指定的顺序列出元素。...第2个类似,但有所不同:它在其它地方找出set_col包含value的行,甚至是在另一个SET成员的子字符串中。...如果想要为SET列确定所有可能的值,使用SHOW COLUMNS FROM tbl_name LIKE set_col并解析输出中第2列的SET定义。

    4.9K10

    mysql中find_in_set()函数的使用

    ----------------- MySQL手册中find_in_set函数的语法: FIND_IN_SET(str,strlist) str 要查询的字符串 strlist 字段名 参数以”,...需要得到某字段中包含某个值的记录,但是它也不是用like能解决的,使用like可能查到我们不想要的记录,它比like更精准,这时候mysql的FIND_IN_SET函数就派上用场了,下面来看一个例子。...注意:mysql字符串函数 find_in_set(str1,str2)函数是返回str2中str1所在的位置索引,str2必须以","分割开。...----------------- MySQL手册中find_in_set函数的语法: FIND_IN_SET(str,strlist) str 要查询的字符串 strlist 字段名 参数以”,...注意:mysql字符串函数 find_in_set(str1,str2)函数是返回str2中str1所在的位置索引,str2必须以","分割开。

    5K40

    【MySQL 】MySQL 中的 int(11) 到底代表什么意思?

    一、前言   在工作中经常要与 mysql 打交道,但是对 mysql 的各个字段类型一直都是一知半解,因此写本文总结记录一番。 二、简介 ?   ...对于 int 类型的一些基础知识其实上图已经说的很明白了,在这里想讨论下常用的 int(11) 代表什么意思,很长时间以来我都以为这代表着限制 int 的长度为 11 位,直到有天看到篇文章才明白,11...代表的并不是长度,而是字符的显示宽度,在字段类型为 int 时,无论你显示宽度设置为多少,int 类型能存储的最大值和最小值永远都是固定的,这里贴一些原文片段。   ...那么照文中所说,所以无论怎么设置 int 类型的显示宽度,int 所能存储的最大值和最小值是固定的,那么这个显示宽度到底有什么用呢?   ...三、结论 从上个例子我们可以得出以下几个结论:   1、如果一个字段设置了无符号和填充零属性,那么无论这个字段存储什么数值,数值的长度都会与设置的显示宽度一致,如上述例子中的字段 b,插入数值 1 显示为

    4.8K20

    MYSQL用法(十五) MySQL中FIND_IN_SET()用法

    FIND_IN_SET(str,strlist) 返回str在字符串集strlist中的序号(任何参数是NULL则返回NULL,如果str没找到返回0,参数1包含","时工作异常) 例子: 查询表字段...() 更简单 SELECT * FROM linkinfo WHERE FIND_IN_SET('1',pingid 原来以为mysql可以进行这样的查询----->(一) select id, list...这样只有当name是list中的第一个元素时,查询才有效,否则都的不到结果,即使'daodao'真的再list中 再来看看这个:----->(二) select id, list, name from...原因其实是(一)中 (list)    list是变量, 而(二)中 ('libk', 'zyfon', 'daodao')是常量 所以如果要让(一)能正确工作,需要用find_in_set()---...select id, list, name from table where FIND_IN_SET( 'daodao' , list); 总结:所以如果list是常量,则可以直接用IN, 否则要用FIND_IN_SET

    4.3K30

    mysql中FIND_IN_SET的使用方法

    在mysql中,有时我们在做数据库查询时,需要得到某字段中包含某个值的记录,但是它也不是用like能解决的,使用like可能查到我们不想要的记录,它比like更精准,这时候mysql的FIND_IN_SET...FIND_IN_SET(str,strlist)函数 str 要查询的字符串 strlist 字段名 参数以”,”分隔 如 (1,2,6,8) 查询字段(strlist)中包含(str)的结果,返回结果为...下面查询btype字段中包含”15″这个参数的值 SELECT * from test where FIND_IN_SET('15',btype) 返回值 下面查询btype字段中包含”5″这个参数的值...接下面查询btype字段中包含”20″这个参数的值 SELECT * from test where FIND_IN_SET('20',btype) 当然它的返回值为null,因为字段中没有这个值 FIND_IN_SET...和like的区别 like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。

    97410

    MySQL中FIND_IN_SET探险记

    1、业务背景 公司的业务需求是需要分权限分等级的获取不同的内容,因为原来的角色,权限,分组表已经建好,但是又要实现不同产品需要不同等级不同分组的人员管理,在做数据库查询时,需要得到某字段中包含某个值的记录...,但是它也不是用like能解决的,使用like可能查到我们不想要的记录,它比like更精准,查找资料后发现涉及到数据库的特有函数,候mysql的FIND_IN_SET函数就派上用场了,下面来具体了解一下...其实where 类似于 if 就是对条件的判断,返回 true or false。在检索过程中,将满足条件的,即条件为true的结果返回。...贴图: SELECT FIND_IN_SET(1,1) ? 刚说好的字符串,你就给我来个这 ? ? ? ,mysql你怎么可以这么随意呢! ? ? ? 以上图示,有劳读友自行总结 ? ? ?...5、FIND_IN_SET和like的区别 like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果

    2.4K10

    【说站】mysql中set类型如何理解

    mysql中set类型如何理 说明 1、set和enum很像,也是一个字符串对象,可以包含0~64个成员。 根据成员数量不同,存储器也不同。set类型可以一次选择多个成员。...2、可以从允许值集中选择任何元素进行组合,因此只要输入的值在允许值的组合范围内,就可以正确记录在set类型的列中。 对超出允许范围的值,报错。而且有重复成员的集合,会自动去重。...实例 --创建表ts,包含字段f1(set()) mysql> create table ts (f1 set('a','b','c','d')); mysql> insert into ts values...('a,b'),('a,d'),('b,c,d'); 以上就是mysql中set类型的理解,希望对大家有所帮助。...更多mysql学习指路:MySQL 推荐操作系统:windows7系统、mysql5.8、DELL G3电脑 收藏 | 0点赞 | 0打赏

    1K30

    MYSQL Write Set 的疑惑?

    基于MYSQL 的组复制,其实已经是一项成熟的技术了,从MYSQL 5.6 开始,到目前的8 ,属于接近初成熟的阶段。...首先我们要理解两个事情,为什么要组复制,理由无非两个 1 提供成员之间更快的复制 2 提供多成员之间的认证 到底WRITE-SET 比原先的复制哪里快了 首先我们要了解几个问题和相关的参数 binlog_transaction_dependency_tracking...这个参数有三个设置的选择项 1 commit_order 默认值,在从库进行顺序型的应用 2 writeset 依赖主库的事务的关联性,在从库可以进行非顺序型的并行应用 3 writeset_session...和第二点的不同在于SESSION的隔离性 我们可以比对 commit_order 和 writeset_session 之间的区别 首先我们可以创建一个表,并插入记录,然后观察LOG 中两个不同的参数的变化...所有我的测试对象又转移到,传统的GTID 复制的机器上面, 两台机器然后最简单的主从复制,然后将复制的方式改为 set global binlog_transaction_dependency_tracking

    2K30

    数据库中的declare什么意思_mysql prepare语句

    sql中declare是声明的意思32313133353236313431303231363533e58685e5aeb931333365653236,就是声明变量的,这个一般是用在函数和存储过程中的。...mysql存储过程中,定义变量有两种方式: 1.使用set或select直接赋值,变量名以 @ 开头. 例如:set @var=1; 可以在一个会话的任何地方声明,作用域是整个会话,称为会话变量。...2.以 DECLARE 关键字声明的变量,只能在存储过程中使用,称为存储过程变量,例如: DECLARE var1 INT DEFAULT 0; 主要用在存储过程中,或者是给存储传参数中。...例: set @v_sql= sqltext; PREPARE stmt FROM @v_sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; 有的时候在查询更新数据库的时候...declare @local_variable data_type DECLARE: 定义变量,变量第一个字母是“@” 声明时需要指定变量的类型, 可以使用set和select对变量进行赋值, 在sql

    3.6K30

    java中的Set集合

    大家好,又见面了,我是你们的朋友全栈君。 概述 Set集合类似于一个罐子,程序可以依次把多个对象“丢进”Set集合,而Set集合通常不能记住元素的添加顺序。...实际上Set就是Collection只是行为略有不同(Set不允许包含重复元素)。...Set集合不允许包含相同的元素,如果试图把两个相同元素加入同一个Set集合中,则添加操作失败,add()方法返回false,且新元素不会被加入。...HashSet类 HashSet是Set接口的典型实现,大多数时候使用Set集合时就是使用这个实现类。HashSet按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能。...):返回此Set的子集,由小于toElement的元素组成; SortedSet tailSet(Object fromElement):返回此Set的子集,由大于fromElement的元素组成; 用法

    1.9K10

    python中的集合(Set)

    python中的集合(Set) 在Python中,集合(Set)是一种无序、无重复元素的数据结构。集合通过花括号 {} 或者使用 set() 函数进行创建。...与其他容器类型(如列表和字典)不同,集合中的元素是不可变的(不可被修改),且没有固定的顺序。 特点: 集合中的元素是唯一的,不存在重复的元素。 集合是无序的,不能通过索引访问或修改元素。...集合中的元素必须是不可变的类型(如数字、字符串、元组),不能包含可变对象(如列表、字典)。..., 'hello', True, 3.14} # 集合包含不同类型的元素 访问和操作集合: 由于集合是无序且不可索引的,无法直接访问集合中的特定元素。....issuperset(set1)) # 判断set2是否是set1的超集,输出: True 其他常用操作:集合还支持计数、长度、清空的操作,可以使用相应的方法来完成这些操作。

    1.2K10
    领券