mysql存储过程查询赋值

桾楉叁杄 2012-02-29 06:08:33
数据库: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赋值没赋进去呢?
...全文
373 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
oO寒枫Oo 2012-03-01
  • 打赏
  • 举报
回复
@变量名字
oO寒枫Oo 2012-03-01
  • 打赏
  • 举报
回复
3.mysql的变量可以不用事先声明的 直接用就可以了
oO寒枫Oo 2012-03-01
  • 打赏
  • 举报
回复
SELECT test2 into endTime FROM t_timelimit;
1.表中查不到数据是null
2.要保证 查出的结果集只有一行
Rotel-刘志东 2012-03-01
  • 打赏
  • 举报
回复
关键查询出的SELECT test1 FROM t_timelimit;SELECT test2 from t_timelimit;
是否有值这是关键。如果查询出的都没有值的话,放入表中也是为空的。
rucypli 2012-02-29
  • 打赏
  • 举报
回复
SELECT test1 into beginTime FROM t_timelimit;
SELECT test2 into endTime FROM t_timelimit;


结果集放入变量中?
ACMAIN_CHM 2012-02-29
  • 打赏
  • 举报
回复
给出你的 create procedure 语句,另外把表的 insert into 语句也给出。

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

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧