用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2225|回复: 3
收起左侧

[已解决] 关于set 后面的语句~

[复制链接]
发表于 2010-4-12 18:40:57 | 显示全部楼层 |阅读模式
update products set prod_price= (select if((select(select prod_price from products where prod_id='FB')+10)<10002,(select(select prod_price from products where prod_id='FB')+10),10002)) where vend_id=10001;

为什么会报You can't specify target table 'products' for update in FROM clause这个错误 应该怎么写~
亲各位高手帮一下啊
发表于 2010-4-13 00:06:39 | 显示全部楼层
汗,楼主就不能分开写?这样自己看着都累,调试也困难
 楼主| 发表于 2010-4-13 10:46:44 | 显示全部楼层
回复 2# visvoy


    俺不会分开写 分开写也不对~ 反正就是错 麻烦你告诉俺怎么错了 怎样写才能实现这个功能?
 楼主| 发表于 2010-4-13 14:00:05 | 显示全部楼层
解决啦~终极方案~
update products set prod_price= if((prod_price +10)<10002, prod_price +10,10002)) where vend_id=10001;
  错误原因是因为使用if会获取prod_price 所以不用select语句把他获取了~

本版积分规则