mysql存过程查询赋值_mysql存储过程查询赋值解决思路

这篇博客探讨了在MySQL存储过程中遇到的查询赋值问题。当尝试从t_timelimit表中选取test1和test2字段的值并插入到test2表中时,发现结果为NULL。讨论了可能的原因,包括表中无记录和查询结果为空。解决方案强调检查SELECT语句是否返回有效数据,并确保结果集中只有一行。
摘要由CSDN通过智能技术生成

mysql存储过程查询赋值

数据库:mysql

表1:CREATE TABLE t_test1 (

test1 varchar(100) COLLATE utf8_bin DEFAULT NULL,

test2 varchar(100) COLLATE utf8_bin DEFAULT NULL

)

表2:CREATE TABLE test2 (

test varchar(100) DEFAULT NULL

)

存储过程

begin

DECLARE times varchar(100);

DECLARE beginTime varchar(100);

DECLARE endTime varchar(100);

SELECT test1 into beginTime FROM t_timelimit;

SELECT test2 into endTime FROM t_timelimit;

INSERT INTO test2 (test) values (beginTime);

INSERT INTO test2 (test) values (endTime);

end

问题是 执行完了 在test2里 没有值 只有两个NULL

为什么into赋值没赋进去呢?

------解决方案--------------------

给出你的 create procedure 语句,另外把表的 insert into 语句也给出。

如果你的t_timelimit表中一条记录都没有,那自然SELECT test1 into beginTime FROM t_timelimit; 也取不到记录,结果beginTime为NULL。

------解决方案--------------------

SELECT test1 into beginTime FROM t_timelimit;

SELECT test2 into endTime FROM t_timelimit;

结果集放入变量中?

------解决方案--------------------

关键查询出的SELECT test1 FROM t_timelimit;SELECT test2 from t_timelimit;

是否有值这是关键。如果查询出的都没有值的话,放入表中也是为空的。

------解决方案--------------------

SELECT test2 into endTime FROM t_timelimit;

1.表中查不到数据是null

2.要保证 查出的结果集只有一行

原创文章,转载请注明: 转载自搞代码

e7ce419cf2d6ad34d01da2ceb8829eed.png

微信 赏一包辣条吧~

023a57327877fb4402bcc76911ec18ea.png

支付宝 赏一听可乐吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值