mysql语句的执行效率 update数据

qaulxy 2009-08-12 10:27:43
买家购买商品的时候,需要扣除会员的费用,两种方式哪一个更好呢?

1.根据商品编号,先在商品数据表查询出对应的价格 select `goods_price` from `goods` where `goods_id` = ‘8888’
用变量表示出价格 $price = $result['goods_price'];
然后利用UPDATE `member` SET `member_balance` = member_balance - $price WHERE `member_id`= ‘qinhaiyan’扣费
这样的话会,执行两个mysql_query

2.用这样的sql执行扣费,直接把商品的价格用sql语句表示出来
UPDATE `member` SET `member_balance` = member_balance - (select `goods_price` from `good` WHERE `goods_id`='8888') WHERE `member`.`member_id` ='qinhaiyan'
我试验了下,这样也能执行成功,不知道是不是符合标准。

请问大家,那一种方法好一些,如果我的写的不标准的话,应该怎么写呢?感激不尽!!
...全文
177 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
CunningBoy 2009-08-12
  • 打赏
  • 举报
回复
2在Web和Database之间只有一次操作,这样效率会高一点,但是如果你的页面要不要显示会员的余额和商品的价格呢?如果之前在页面显示的时候已经查询过价格和余额的话,可以考虑将这些数据临时存在变量中,然后等用户确认后直接update数据库。
hzbigdog 2009-08-12
  • 打赏
  • 举报
回复
第2个快,因为你嵌套的语句里面只有一条返回记录,你给的是ID号
dzxccsu 2009-08-12
  • 打赏
  • 举报
回复
首先我们要看你要更新的数据量,如果更新的数据量大的话,2方法有嵌套语句,比1方法的一般语句执行要慢。因此,我建议用1。如果是少量更新那就无所谓了,都差不多!

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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