MySQL-如果与另一行相似,则从TEXT字段中删除行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL-如果与另一行相似,则从TEXT字段中删除行相关的知识,希望对你有一定的参考价值。

我有一些文本字段,其值类似于:

`FOO` is <1.23
`BAR` is <1.23

并且我想删除'FOO'行,但是仅当'BAR'存在且具有相同的值(在这种情况下为'<1.23')时-有什么建议吗?

请注意,'FOO'和'BAR'是恒定的-即,我从不寻找具有匹配值的'BING'和'BONG'-它始终是'FOO'和'BAR'。

最后注释-字段中可能在目标值之前,之后或中间还有其他行。

只需澄清-这些值不是两个单独的行-它们是一行中文本字段中的多行值,因此需要更新,而不是删除。

答案

尝试以下删除语句:

DELETE
FROM yourTable t1
WHERE
    field LIKE '%`FOO`%' AND
    EXISTS (SELECT 1 FROM yourTable t2
            WHERE REPLACE(t2.field, 'BAR', 'FOO') = t1.field);

以上是关于MySQL-如果与另一行相似,则从TEXT字段中删除行的主要内容,如果未能解决你的问题,请参考以下文章

mysql中将一列以逗号分隔的值分割成多列显示?

python - Pandas - FillNa 与另一个具有相似列的非空行

PHP,检查字符串是否与另一个字符串相似

Mysql:一个表的一个字段与另一个表的两个字段之间的多重关系

如果选择字段,则从组中获取所有选定的选项

如果不为null,则从同一字段更新空字段