用多个MySQL更新MySQL

时间:2015-01-06 10:35:14

标签: mysql

我正在寻找一个可以更新字段的查询,其中某些where子句位于不同的表中

为了确保我不更新代表id的所有字段,我需要另一个where子句,该子句还检查表service_members中是否存在service_name like '%DISK%'

然而,这导致(逻辑上):

ERROR 1093 (HY000): You can't specify target table 'service_members' for update in FROM clause

到目前为止我最好的尝试:

我的初始查询不够严格,因为它与id / hostname匹配,此ID多次出现:

update service_members 
set check_command_data = replace(check_command_data,'80%!90%','90%!95%') 
where host_name in (select id from host where host_name like '%server-01%');

输出:

Query OK, 3 rows affected (0.00 sec)

Rows matched: 23  Changed: 3  Warnings: 0

它当然有效,但会更新新价值'匹配相同的旧值'

我需要在一个查询中实现:

  • 表service_members中的更新为字段设置新值 check_command_data(工作)
  • host_name需要是来自host_name的表主机的select id 就像%某事(工作但不够严格)
  • 表service_members中的
  • service_name必须是像%DISK%
  • 这样的选择

我对如何以正确的方式运行此查询,任何建议/建议感到有点困惑? 提前谢谢!

0 个答案:

没有答案