![Postgresデータベースから文字列/文を含む行を削除する[閉じる]](https://linux33.com/image/7656/Postgres%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%8B%E3%82%89%E6%96%87%E5%AD%97%E5%88%97%2F%E6%96%87%E3%82%92%E5%90%AB%E3%82%80%E8%A1%8C%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
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バージョンでのみ有効です)。