mysql 用户变量

mysql 用户变量 用来存储中间结果(查询结果),以便于该结果在后续语句中的使用。
首先来看一个锁定:

mysql> LOCK TABLES projects READ, temp WRITE;
mysql> SELECT sum(typeid) as sum FROM projects WHERE user_id = 100;

这里写图片描述

mysql> UPDATE temp SET total = 14850 WHERE user_id = 100;
mysql> UNLOCK TABLES;

在这个过程中,需要记住第一次的查询结果,在进行UPDATE语句中的相应修改。若在PHP中,则可使用mysql_fetch_array()检索SELECT语句产生的数据行,将值存在PHP变量中在执行UPDATE语句,并在WHERE子句中包含PHP 变量的值。
还有一种更快捷的办法,将数据存储在MySQL用户变量中。MySQL用户变量可以直接存储连接结果,不必将结果传至Web服务器。之前的例子可以进行如下改写

mysql> LOCK TABLES projects READ, temp WRITE;
mysql> SELECT @total:=sum(price)  FROM projects WHERE user_id = 100;

这里写图片描述

mysql> UPDATE temp SET total = @total WHERE user_id = 100;
mysql> UNLOCK TABLES;

mysql 用户变量以@字符为前缀,赋值运算符是:=。本例中,SELECT语句的结果存在MySQL的变量@total中,在UPDATE语句中,变量@total的值赋给字段total。

注:

  • mysql 用户变量只对同一个数据库的连接有效,连接关闭时随即消失
  • mysql 用户变量只能包含字母、数字、字符、下划线、$、句点。
  • 通常只在一个语句中给变量赋值,并在另一个语句中使用该变量时才有效,为避免bug,一般不在同一语句中赋值并使用变量。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值