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