SQLクエリがありますSELECT * FROM table WHERE column LIKE '%pdd%'
。
問題は、「pdd」で始まるものを除くすべての結果を取得する必要があることです。つまり、「pdd」が先頭にないものをすべて見つける必要があります。どうすればそれができますか?
列の先頭にない場合は、「pdd」と一致させる必要があります。
「pdd」が先頭にある行を除いて、「pdd」に一致するすべての行を意味すると思います。
SELECT * FROM table WHERE column LIKE '_%pdd%'.
述語の「_
」ワイルドカードは、正規表現の「」にLIKE
相当する「任意の文字の1つ」を意味します。.
私があなたの要件を正しく理解している場合、あなたが必要とするものは次のとおりです。
SELECT * FROM table WHERE column LIKE '%pdd_%' and column NOT LIKE 'pdd_%'
SELECT * FROM table WHERE column LIKE '%pdd%' AND column NOT LIKE 'pdd%'
これらのオカレンスがテーブルで発生する頻度に応じて、クエリを最適化できます。
試す:
SELECT * FROM table WHERE column NOT LIKE 'pdd%'