単語全体のみをLIKEと一致させますか?
したがって、docは部分文字列であるため、 'awesome document' LIKE '%doc%'はtrueです。しかし、「awesome doc」、「doc awesome」、「awesome doc awesome」が真である必要があるのに対し、私はそれを偽にしたいのです。どうすればいいねでできますか?
私はsqliteを使用しているので、利用できないものを使用する必要がないことを願っています。
WHERE (@string LIKE 'doc %' OR @string LIKE '% doc' OR @string LIKE '% doc %' OR @string = 'doc')
以下の条件を使用できます。
(' '+YOUR_FIELD_NAME+' ') like '% doc %'
他のソリューションよりも高速に動作します。
いくつかのORを使用できます。LIKE '%doc%' OR LIKE'doc% 'OR LIKE'%doc 'OR LIKE'doc'
答えはどれも私にはうまくいきませんでした(SQL Server 2008R2)。
しかし、私は以下に示す答えのいくつかを使用してそれを機能させることができました。
SELECT * FROM myTable AS v
WHERE v.Note LIKE '%[^a-zA-Z0-9]CONTainers[^a-zA-Z0-9]%'
注: v.NoteはTEXTデータ型です
これは、次のサンプルでうまくいきました。
- コンテナ
- コンテナ
- コンテナ
しかし、単語「コンテナ」が他の文字や数字で囲まれている場合はそうではありません。
- 001containers001
- AAcontainersAA
そもそもOPが求めていたのはこれです。