我想知道如何删除 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 版本有效)。