Postgresデータベースから文字列/文を含む行を削除する[閉じる]

Postgresデータベースから文字列/文を含む行を削除する[閉じる]

title列に特定の文字列を含むpostgresテーブルの行全体を削除する方法を知りたいです。したがって、文字列が次のような場合:

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バージョンでのみ有効です)。

関連情報