关于mysql的update问题

jaghuang 2003-08-19 10:21:22
首先看一个sql
UPDATE part_cost,exchange_rate SET part_cost.standard_cost = exchange_rat" +
"e.exchange_rate * 10 WHERE part_cost.currency_code_ID = exchange_rate.currency_c" +
"ode_ID and exchange_rate.YYYYMM = '200201';

这句的意思就是update part_cost里面的standard_cost,而standard_cost的更新和exchange_rate有关系,所以要把table exchange_rate也放上去

这句话在mysql4以上是可以的,但我们现在使用的是3.51版本的,不支持这种写法(不使用4的原因是以为4是alpha版本,而且好象grant也有问题),所以想知道大家在碰到这样的功能实现的时候是怎么个做法。


当然有解决的办法,比如说先得到exchange_rate里面你想要的数据和可以成为选择part_cost内数据的条件,放入一个array,然后在用一个循环来对part_cost进行更新,但这样的做法就要运行很多次resultSet了,实在很消耗资源。所以希望在这里看看大家有没有更加好的方法。
...全文
21 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuixin13 2003-08-19
  • 打赏
  • 举报
回复
如果没看错的话你的语句是这样的吧:

UPDATE part_cost A, exchange_rate B
SET A.standard_cost = B.exchange_rate * 10
WHERE A.currency_code_ID = B.currency_code_ID
AND A.YYYYMM = '200201';
该语句没有问题的

>>这句话在mysql4以上是可以的,但我们现在使用的是3.51版本的,
你的 3.51 并不是 MySQL 的版本,而是 MyODBC 驱动的版本,
你只要使用 MySQL 4.0.14b 最新稳定版就行了

56,675

社区成员

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

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