首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL WHERE语句:如何删除列子字符串不等于所需子字符串的表中的行?

MySQL WHERE语句:如何删除列子字符串不等于所需子字符串的表中的行?
EN

Stack Overflow用户
提问于 2020-10-29 14:57:45
回答 1查看 42关注 0票数 0

我想删除kontext(column_name)值,这些值具有与fmea值不同而不同于null的子字符串。我可以通过以下查询选择这些值:

代码语言:javascript
复制
select * 
FROM fmea001 
where substring_index(kontext, ".", 1) 
    not in  (Select substring_index(kontext, ".", 1) 
             from fmea001 
             where fmea is not null 
               and lkey = 9) 

但是当我试图删除

代码语言:javascript
复制
delete * 
FROM fmea001 
where substring_index(context, ".", 1) 
    not in  (Select substring_index(context, ".", 1) 
             from fmea001 
             where fmea is not null 
               and lkey = 9)) 

我知道这个错误

错误代码: 1093。不能指定目标表“fmea001”以便在FROM子句中进行更新

您知道另一种方法来执行删除语句吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-29 15:07:44

MySQL dodes不支持对子查询中正在修改的表(更新表或删除表)进行重新设置。

如果我正确地理解了你,你可以把它写成一个反左的联接:

代码语言:javascript
复制
delete f
from fmea001 f
left join fmea001 f9
    on  substring_index(f9.kontext, '.', 1) = substring_index(f.kontext, '.', 1) 
    and f9.fmea is not null
    and f9.lkey = 9
where f9.fmea is null
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64593679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档