从 postgres 数据库中删除包含字符串/句子的行

从 postgres 数据库中删除包含字符串/句子的行

我想知道如何删除 postgres 表中包含title列中特定字符串的整行。所以如果字符串是:

it is a sunny day

如何在 postgres 中发出命令以从表中完全删除这一行。例如,以下行将被删除:

12, I woke up and to my surprise it is a sunny day, 54645646,

另外,我希望它忽略大小写,因为字符串可能是大写和小写字母的混合(即我在整个表中的大小写有所不同)。任何帮助表示赞赏。

我试过了:

DELETE FROM mytable where title like 'it is a sunny day'

但尽管我知道有很多行包含此字符串,但没有更新任何记录。

答案1

通过 LOWER 函数,您可以不区分大小写地搜索字符串。

DELETE FROM mytable WHERE LOWER(title) LIKE '%it is a sunny day%';

答案2

你已经成功了。您需要使用正则表达式模式(而不仅仅是字符串)来仅搜索条目字符串的一部分,并使用 ILIKE 关键字来不区分大小写。看https://www.postgresql.org/docs/9.0/static/functions-matching.html了解详细信息(该 URL 仅对 PostgreSQL 9.x 版本有效)。

相关内容