mysql中要获得存储过程的返回值,可以增加一个out参数,用来返回。
mysql中存储过程的例子:
CREATE PROCEDURE addvoucher (
IN userid INT,
IN voucherid INT,
OUTresult INT
)
BEGIN
SELECT
@endate_a := endate ,@batch_a := batch ,@c_count_a := c_count,
@isdead_a := isdead
FROM
t_voucher
WHERE
id = voucherid;
SET autocommit = 0;
IF EXISTS (
SELECT
*
FROM
t_user_voucher tuv,
t_voucher tv
WHERE
tv.id = tuv.voucherid
AND tv.batch =@batch_a
) THEN
SET result = 1;-- 已存在
SELECT
result;
ELSE
IF @c_count_a > 0 THEN
IF (
TO_DAYS(@endate_a) - TO_DAYS(NOW())
) > 0 THEN
IF @isdead_a = 1 THEN
INSERT INTO t_user_voucher (userid, voucherid, isdead)
VALUES
(userid, voucherid, 1);
UPDATE t_voucher SET c_count = c_count-1 where id = voucherid;
SET result = 0;-- 成功
END;
下面是调用并返回结果:
❷ mysql 存储过程中怎么定义数组的格式
存储过程里定义不了数组。如果是sqlserver,那么你可以用表变量,游标来实现你的功能。 如果是sqlserver2005以上的版本,可以做clr存储过程,那里面是可以用数组的。
❸ mysql可以直接存数数组么
拿PHP代码来演示:
$info=array("name"=>"zhangsan","sex"=>"男","age"=>18);
$userInfo=json_encode($info);
可以考虑将数组encode成json字符串,然后存入,如下图
$arr=json_decode($result);
谢谢~
❹ mysql中怎么存储数组在线等!急!
把数组转换成字符串后再存入数据库
参考函数:
implode() ---把数组转换成字符串
explode() ---把字符串转换成数组
手册里有详细说明
序列化以后存储.
对于一维数组可以简单的用
implode
explode
函数做数组——串的变换,但需注意分隔符要使用数组中不存在的字符
对于多维数组可以用序列化函数处理
serialize
unserialize
函数的用法手册中都有
❺ mysql的存储过程怎么传入数组参数
没试过往里面传数组,一般都是多传几个参数,把几个参数放入SqlParameter[]中,然后cmd.Parameters.AddRange(pars);
创建方法:
SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@PageIndex","ccc"),
new SqlParameter("@PageSize","ccc"),
new SqlParameter("@StrSql","ccc")
};
ccc就是你想传入的值,带@的就是你在存储过程中定义的参数。
算是一种另类的数组吧。要不你就把所有条件组合成一个字符串,中间用特殊符号隔开,到数据库用split方法再分回来,不过这个方法比较麻烦,不推荐
❻ 在mysql数据库怎么存int[ ]数组
按字符串存就可以了!!
int[6] in={1,1,1,1,1,1,1}可以直接存成varchar "1111111";
❼ MYSQL存入数组的获取问题
你应该在存入时将数组进行序列化,读出时在进行反序列化
serialize
unserialize
❽ mysql中怎么存储数组
SQL没有数组这种类型,数组是一种数据结构的概念,跟关系型mysql数据存储持久化没有关系。
如果要将数组的内容存储的mysql中,如 arr[n][m]二维数组,你创建一个table arr, 列是 A B,循环数组的每个元素,然后存储到对应的表中的A B列。
当然怎么存储到数据库中看你自己的需要,可以存到一个字段中,用分隔符分开,倒是取出来的时候直接字符串split得到数组。
(8)mysql存储数组扩展阅读:
系统特性:
1、mySQL使用 C和C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。
2、支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。
3、为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby,.NET和 Tcl 等。
4、支持多线程,充分利用 CPU 资源。
5、优化的SQL查询算法,有效地提高查询速度。
6、既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
7、提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。
8、提供TCP/IP、ODBC 和JDBC等多种数据库连接途径。
9、提供用于管理、检查、优化数据库操作的管理工具。
10、支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
❾ 如何把byte数组存储到mysql中
mysql中有2种字段类型来存储二进制原始数据。
1、binary和varbinary,适合存储少量的二进制数据
2、blob适合存储大量的数据
输入时可以用INSERT INTO table (name) VALUE( x“0123456789ABCDEF“ )
这样的16进制串,也可以JDBC的setBlob等方法输入。