我正在寻找一个可以更新字段的查询,其中某些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
它当然有效,但会更新新价值'匹配相同的旧值'
我需要在一个查询中实现:
我对如何以正确的方式运行此查询,任何建议/建议感到有点困惑? 提前谢谢!