mysql - 删除表中某一行中某个字符串之后的所有记录

标签 mysql

我定期将表从 CSV 导入到 MYSQL。我需要通过删除行中给定字符串之后的所有行来清理表。每次导入可能有不同数量的记录,因此在设置行ID之后删除将不起作用,因为该字符串下次可能位于不同的行上,因此需要挑选出文本。 有人知道这是如何做到的吗? 下面的示例显示了不同的行和文本。所以我需要删除“Text d”之后的所有行。

Text a
Text x
Text k
Text d
Text a
Text u

最佳答案

假设您有一个 ID 列,并且 ID 值的顺序与“删除 'Text d' 之后的每一行”的顺序相同,您可以先读取该特定行的 ID:

SELECT
    id
FROM
    yourTable
Where
    yourColumn = 'Text d'

然后您可以使用该 ID 进行第二次查询来删除以下所有行

DELETE FROM
    yourTable
WHERE
    id > theSelectedIdValue

您可以在一个查询中使用它,如下所示:

DELETE FROM
    yourTable
WHERE
    id > (SELECT
              id
          FROM
              yourTable
          WHERE
              yourColumn = 'Text d')

但是我不确定这个查询在 MySQL 中是否有效。

关于mysql - 删除表中某一行中某个字符串之后的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47483137/

相关文章:

sql - 在 MySQL 中加入多个不相关的表

Mysql在两列中使用相同的表行

mysql - MySQL 中不允许子查询限制,但我需要 "it"

php - 从mysql获取季度销售趋势

php - 将 PHP 数据添加到 MYSQL 数据库

php mysql 如果不存在则创建数据库

mysql - 数据库 - 检索未使用位置的结果

mysql - 从 PHP PDO 对象访问 AWS Lightsail LAMP Stack - MariaDB

Java 服务器。多线程访问MySQL。如何管理多个查询?

php - 如何将<select>中的时间输入mysql并让它输出am/pm?