sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLのパターンマッチングとは異なるパターンマッチングの使用中にエラーが発生しました

    通常、私は「notin」というキーワードを使用してパターンマッチングを使用します。

    SELECT kolom1 from tabel where kategori not in ('A', 'B')
    

    それから私は「好きではない」というキーワードを使おうとしました

    SELECT kolom1 from tabel where kategori not like any (array['A', 'B'])
    

    結果は同じだと思います。しかし、実行後の結果は異なります。結果が異なる理由に興味があります。調べた後、anyキーワードがどのように機能するかは、要素の1つが満たされた場合にtrueを返すことです。したがって、要素Aをキーワードと比較すると、配列内の要素の1つ、つまりBではなく、基準を満たしているため、真になります。その逆も同様です。望ましい結果は要素Aでも要素Bでもありません。この問題に答えるために、「すべてではない」というキーワードが使用されます。

    SELECT kolom1 from tabel where kategori not like all (array['A', 'B'])
    

    参照
    stackoverflow


    1. if(select count(column)from table)> 0 then

    2. PHPでSQL変数をバインドする方法は?

    3. 柔軟で管理しやすい部品表(BOM)設計

    4. 文字列をいくつかの行に分割します