我有一些文本字段,其值如下:
`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 - 如果文本字段与另一行相似,则删除该行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58990374/