宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

这篇文章主要介绍了inout参数mysql存储中的用法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

mysql数据库的存储里,我们已经学过了输入和输出的参数。还有一种参数结合了前面所说两种参数的优势,既能输入也可以输出,不过在值上跟out参数一样,局限于变量,这个参数的名称是inout。

1.inout输入输出参数概念:

既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)

2.使用示例:

mysql> delimiter $$
mysql> create procedure inout_param(inout p_inout int)
    ->   begin
    ->     select p_inout;
    ->     set p_inout=2;
    ->     select p_inout;
    ->   end
    -> $$
mysql> delimiter ;
 
mysql> set @p_inout=1;
 
mysql> call inout_param(@p_inout);
+---------+
| p_inout |
+---------+
|       1 |
+---------+
 
+---------+
| p_inout |
+---------+
|       2 |
+---------+
 
mysql> select @p_inout;
+----------+
| @p_inout |
+----------+
|        2 |
+----------+

调用了inout_param存储过程,接受了输入的参数,也输出参数,改变了变量

注意:

①如果过程没有参数,也必须在过程名后面写上小括号

例:CREATE PROCEDURE sp_name ([proc_parameter[,…]]) ……

②确保参数的名字不等于列的名字,否则在过程体中,参数名被当做列名来处理

拓展mysql字符串函数:

1.LEFT(s,n)、RIGHT(s,n)

前者返回字符串s从最左边开始的n个字符,后者返回字符串s从最右边开始的n个字符

2.LPAD(s1,len,s2)、RPAD(s1,len,s2)

前者返回s1,其左边由字符串s2填补到len字符长度,假如s1的长度大于len,则返回值被缩短至len字符;前者返回s1,其右边由字符串s2填补到len字符长度,假如s1的长度大于len,则返回值被缩短至len字符

3.LTRIM(s)、RTRIM(s)

前者返回字符串s,其左边所有空格被删除;后者返回字符串s,其右边所有空格被删除

4.TRIM(s)

返回字符串s删除了两边空格之后的字符串

5.TRIM(s1 FROM s)

删除字符串s两端所有子字符串s1,未指定s1的情况下则默认删除空格