如何在mysql中声明一个变量,以便我的第二个查询可以使用它
我想写一些类似于:
设置开始=1;
设定光洁度=10;
从开始和结束之间的位置选择*;
MySQL中主要有三种类型的变量:
-
用户定义变量(前缀为
@):您可以访问任何用户定义的变量,而无需声明它或
初始化它。如果您引用的变量尚未
初始化后,它的值为NULL,类型为字符串选择@var\u任意var\u名称您可以使用
SET或SELECT语句初始化变量:设置@start=1、@finish=10;或
选择@start:=1、@finish:=10; 从放置在@start和@finish之间的位置中选择*;用户变量可以从有限的数据集中分配一个值
类型:整数、十进制、浮点、二进制或非二进制字符串,
或空值用户定义的变量是特定于会话的。即,用户
一个客户端定义的变量不能被另一个客户端看到或使用
客户它们可以使用高级MySQL用户变量技术在
SELECT查询中使用 -
局部变量(无前缀):
局部变量需要在声明之前使用
DECLARE
访问它它们可以用作局部变量和输入参数
在存储过程中:分隔符// 创建程序sp_测试(var1 INT) 开始 声明start INT unsigned DEFAULT 1; 声明finishint unsigned默认值为10; 选择var1、start、finish; 从开始和结束之间的位置选择*; 结束// 定界符; 调用sp_测试(5);如果缺少
DEFAULT子句,则初始值为NULL局部变量的范围是
BEGIN。。。结束内的块
它是被宣布的 -
服务器系统变量(前缀为
@):MySQL服务器维护许多配置为默认值的系统变量。
它们可以是全局、会话或两种类型全局变量会影响服务器的整体操作,而会话变量会影响单个客户端连接的操作
要查看正在运行的服务器使用的当前值,请使用
SHOW VARIABLES语句或[email protected]@var\u name显示变量,如“%wait_timeout%”; 选择@@sort\u buffer\u size;它们可以在服务器启动时使用命令行或选项文件中的选项进行设置。
在服务器运行时,可以使用SET GLOBAL或SET SESSION动态更改其中的大多数会话:--将值设置为全局变量的语法: 设置全局排序缓冲区大小=1000000; 设置@@global.sort\u buffer\u size=1000000; --将值设置为会话变量的语法: 设置排序缓冲区大小=1000000; 设置会话排序缓冲区大小=1000000; 设置@@sort\u buffer\u size=1000000; 设置@@local.sort\u buffer\u size=10000;