MySQL - 如果文本字段与另一行相似,则删除该行

标签 mysql

我有一些文本字段,其值如下:

`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/

相关文章:

php - 如何使用 phpmyadmin 导出 MySQL 中的特定列?

php - Opencart 1.5 中的自定义运输下拉框

java - 如何使用 java/scala 将图像数据插入 mySql mediumtext 字段?

mysql - 在 Windows 服务器计算机上访问 MYSQL DB 时,Windows 7 PC 非常慢

mysql - 当数据为 0 时显示空白,否则 concat 函数中的值

php - 用户通过Facebook登录后,我应该如何处理用户数据

mysql - 如何将数据库从数百 MB 的大型 SQL 文件导入到 MySQL

mysql - 如何在 Play Framework 中运行依赖于 mysql 数据库的测试?

mysql - 我的sql查询一直在获取,是代码还是其他什么?

python - 通过python更新Mysql数据库出错