mysql用户变量在程序中怎么使用

Spring89 2013-10-17 05:59:38

//定义用户变量reply_id
SELECT @reply_id:=max(rs.reply_id) FROM joye_market_uc_comment_reply rs GROUP BY reply_commentid ORDER BY reply_replytime desc LIMIT 10;


//在这里使用变量reply_id
SELECT reply_commentid,reply_userid,user_nickname as reply_nickname,
reply_content,reply_replytime FROM joye_market_uc_comment_reply r INNER JOIN joye_market_uc_userinfo ON user_id=reply_userid WHERE r.reply_id IN
(@reply_id)


已知,在数据库中,把定义变量的SQL执行一次,然后多次执行下面的SQL就已经用到了变量reply_id的值,但是在java程序中呢?应该怎么写这条SQL呢,以使它能用到变量reply_id呢?求解......
...全文
269 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuxin1128 2013-11-07
  • 打赏
  • 举报
回复
用户变量在建立接连,与断开连接这段时间内是有效的,至于在程序中怎么使用,没用过!
Spring89 2013-10-18
  • 打赏
  • 举报
回复
引用 4 楼 lzd_83 的回复:
程序连接mysql,就已经建立一个session,断开连接话变量就被释放了。
哦,明白了!那我该怎样去使用它呢?用户变量在连接没有断开的情况下查询一次就可以了,所以,我不能把定义用户变量的SQL和使用这个变量的SQL放在一起!那应该把定义用户变量的SQL写在哪呢?
Rotel-刘志东 2013-10-18
  • 打赏
  • 举报
回复
程序连接mysql,就已经建立一个session,断开连接话变量就被释放了。
Spring89 2013-10-17
  • 打赏
  • 举报
回复
引用 1 楼 ACMAIN_CHM 的回复:
java 中同样方法使用,但要注意这个变量仅在同一个session中有效,如果连接中止了则变量自动被释放。
它受HttpSession的管理吗? 我需要为定义用户变量reply_id的SQL单独出一个方法来获取吗?还是和下面使用变量的SQL写在一起,如:

String sql = "SELECT @reply_id:=max(rs.reply_id) FROM joye_market_uc_comment_reply rs GROUP BY reply_commentid ORDER BY reply_replytime desc LIMIT 10;"+
"SELECT reply_commentid,reply_userid,user_nickname as reply_nickname,
reply_content,reply_replytime FROM joye_market_uc_comment_reply r INNER JOIN joye_market_uc_userinfo ON user_id=reply_userid WHERE r.reply_id IN 
(@reply_id)";
但是像这样用,每一次都会执行定义用户变量的SQL;这样,二条SQL查询效率肯定低于只查一条的SQL,我该怎么做呢?难道把定义用户变量的SQL所返回结果放在一个session中?但是我又没有用到session啊,求解......
ACMAIN_CHM 2013-10-17
  • 打赏
  • 举报
回复
java 中同样方法使用,但要注意这个变量仅在同一个session中有效,如果连接中止了则变量自动被释放。

56,677

社区成员

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

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