0

私はdbにいくつかの文を持っています。URLが含まれていないものを選択したい。

だから私がすることは

select ID, SENTENCE
from SENTENCE_TABLE
where regexp_like(SENTENCE, '[^http]');

ただし、クエリが実行された後、結果ペインに表示される文にはまだ URL があります。他の多くの組み合わせを試しましたが、成功しませんでした。SQLで正規表現が実際にどのように機能するかが説明されている場所を説明したり、適切なリンクを提供したりできますか。

SQLクエリを使用してdb内の実際の単語をフィルタリング(除外)するにはどうすればよいですか?

4

2 に答える 2

4

あなたはこれを複雑にしすぎています。標準のLIKEを使用するだけです。

select ID, SENTENCE
  from SENTENCE_TABLE
  where SENTENCE not like '%http%';

regexp_like(SENTENCE, '[^http]')h、t、p以外のすべてに個別に一致します。Oracleの正規表現に関するPSOUGページが好きですが、ドキュメントも読むことをお勧めします。

コメントに返信するには、REGEXP_LIKEを使用できますが、意味がありません。

select ID, SENTENCE
  from SENTENCE_TABLE
 where not regexp_like(SENTENCE, 'http');

これは、文字httpではなく文字列を個別に検索します。

于 2013-02-28T11:50:31.837 に答える
3

[^http]h or t or t or ..を除く任意の文字に一致するため、文字列内のどこにもorまたはorpを含まない任意の文字列に一致しますh t t p

where not regexp_like(SENTENCE, '^http');..これはhttp で始まらないものすべてに一致するはずです

于 2013-02-28T11:43:04.823 に答える