MySQL变量赋值及符号解释

mysql 变量赋值的三种方法

mysql中变量不用事前申明,在用的时候直接用“@变量名”使用就可以了。
第一种用法:set @num=1; 或set @num:=1; //这里要使用变量来保存数据,直接使用@num变量
第二种用法:select @num:=1; 或 select @num:=字段名 from 表名 where ……
注意上面两种赋值符号,使用set时可以用“=”或“:=”,但是使用select时必须用“:=赋值”

第三种用法:select 字段名1,字段名2 into @变量1,@变量2 from 表名 where …

在函数或存储过程或触发器中,在不能使用set的时候推荐第三种,因为第二种会在执行时返回查询结果,这在函数或触发器中会报 “Not allowed to return a result set from a function”错误。而第三种则不会报错。

————————————————
原文链接: https://www.cnblogs.com/franson-2016/p/11640452.html

1、<=>

安全比较运算符,用来做 NULL 值的关系运算。

因为 mysql 的 NULL 值的特性,任何值和其比较的结果都是 NULL, 1 = NULL,1 <> NULL / 1 != NULL 得到的结果都是 NULL。

SELECT 1 = NULL, 1 <> NULL, 1 != NULL;

±---------±----------±----------+

| 1 = NULL | 1 <> NULL | 1 != NULL |

±---------±----------±----------+

| NULL | NULL | NULL |

±---------±----------±----------+

1 row in set (0.00 sec)

当然我们可以用 IS NULL 去判断,即

SELECT 1 IS NULL, 1 IS NOT NULL, NOT (1 IS NULL), !(1 IS NULL);

±----------±--------------±----------------±-------------+

| 1 IS NULL | 1 IS NOT NULL | NOT (1 IS NULL) | !(1 IS NULL) |

±----------±--------------±----------------±-------------+

| 0 | 1 | 1 | 1 |

±----------±--------------±----------------±-------------+

1 row in set (0.00 sec)

但用 <=> 更为简洁

SELECT 1 <=> NULL, !(1 <=> NULL);

±-----------±--------------+

| 1 <=> NULL | !(1 <=> NULL) |

±-----------±--------------+

| 0 | 1 |

±-----------±--------------+

1 row in set (0.00 sec)

2、:=

:= 和 = 运算符在大部分场景下并无区别,但 := 更为全场景些。

= 只有在 set 和update时才是和 := 一样,赋值的作用,其它都是关系运算符 等于的作用。

:= 不只在 set 和 update 时赋值的作用,在 select 也是赋值的作用。

SET @name = ‘big_cat’;

SELECT @name;

#= 在 select 语句中成为了比较运算符 结果为 NULL (@name 为 NULL, 在 mysql 中 NULL 和任何值比较都为 NULL)

#:= 则为仍未赋值,@name_defined 被赋值为 big_cat 后再 select 就出来了

SELECT @name = ‘big_cat’, @name_defined := ‘big_cat’, @name_defined;

±------------------±---------------------------±--------------+

| @name = ‘big_cat’ | @name_defined := ‘big_cat’ | @name_defined |

±------------------±---------------------------±--------------+

| NULL | big_cat | big_cat |

±------------------±---------------------------±--------------+

1 row in set (0.00 sec)

3、@ 用户变量

@用来标识用户变量

SET @name = “big_cat”;

SELECT ‘big_cat’ INTO @name;

SELECT @name := ‘big_cat’;

4、@@系统变量

系统变量又分为全局系统变量和会话系统变量

读取系统变量

SELECT @@global.sort_buffer_size;

SELECT @@session.sort_buffer_size;

SHOW GLOBAL VARIABLES LIKE ‘sort_buffer_size’;

SHOW SESSION VARIABLES LIKE ‘sort_buffer_size’;

设置系统变量

SET @@global.sort_buffer_size = 2 * 1024 * 1024;

SET @@session.sort_buffer_size = 2 * 1024 * 1024;

SET GLOBAL sort_buffer_size = 2 * 1024 * 1024;

SET SESSION sort_buffer_size = 2 * 1024 * 1024;

有些系统变量只有全局级的,比如 max_connnections,读取时可以不显示声明 global,但设置时需要,否则会提示你设置的为全局变量。
————————————————
版权声明:本文为CSDN博主「李萌康」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_29876341/article/details/113268791

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源的部分目录: 4.3 变 量............................................................................................................................. 35 4.3.1 变量类型.................................................................................................................. 35 4.3.2 变量的使用.............................................................................................................. 37 4.3.3 变量的初始化.......................................................................................................... 40 4.3.4 初始化对象变量( object) .................................................................................... 41 4.3.5 变量的活动范围...................................................................................................... 41 4.3.6 变化变量.................................................................................................................. 43 4.3.7 外界PHP 变量........................................................................................................ 43 4.3.8 环境变量.................................................................................................................. 44 4.3.9 变量类型变化.......................................................................................................... 45 4.3.10 确定一个变量的类型............................................................................................ 45 4.3.11 类型强制................................................................................................................ 45 4.3.12 字符串转化............................................................................................................ 46 4.4 数 组 操 作....................................................................................................................... 46 4.4.1 初始化数组.............................................................................................................. 47 4.5 类........................................................................................................................................ 47 第5 章 表达式和运算符.................................................................................................52 5.1 表 达 式......................................................................................................................... 52 5.2 运 算 符 号....................................................................................................................... 54 5.2.1 算术运算符.............................................................................................................. 54 5.2.2 字符串运算.............................................................................................................. 56 5.2.3 赋值运算.................................................................................................................. 56 5.2.4 位运算...................................................................................................................... 57 5.2.5 逻辑运算.................................................................................................................. 57 5.2.6 其他运算符号.......................................................................................................... 58 第6 章 控制语句和函数的生成......................................................................................59 6.1 if..else 语句........................................................................................................................ 59 6.2 do..while 语句.................................................................................................................... 61 6.3 for 语句............................................................................................................................... 62 6.4 switch 语句......................................................................................................................... 62 6.5 其他流程控制语句............................................................................................................. 64 6.5.1 break 语句................................................................................................................ 64 6.5.2 continue 语句........................................................................................................... 64 6.6 程序外调用语句................................................................................................................. 65 6.6.1 require()语句............................................................................................................ 65 6.6.2 include()语句........................................................................................................... 66

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值