1

テキスト フィールドからデータを取得する必要があります。すべての入力がきれいになるわけではありません...一部のユーザーは、スペルが適切でなかったり、一貫性がなかったりします。さまざまなスペルミスや代替用語を探す必要があります。

私は Sybase ASE を使用していますが、AND ステートメントが扱いにくくなり、最適ではない可能性があるのではないかと考えています。ここに1つの試みがあります:

AND (entry_txt like 'fight' OR
    entry_txt like 'confron%' OR
    entry_txt like 'aggres%' OR
    entry_txt like 'grab' OR
    entry_txt like 'push' OR
    entry_txt like 'strike' OR
    entry_txt like 'hit' OR
    entry_txt like 'assa%')

追加の用語のいくつかの新しい要件と、いくつかの独自の名前と、その中の 8 ~ 9 のバリエーションを追加すると、長くなります! これを行うためのより効率的な方法はありますか、それともそれですか?

また、部分的な文字列の比較には LIKE を使用し、セットの値には IN を使用する必要があることも読みました。部分的な文字列のセットからの値はどうですか? ここで IN を使用できますか?/すべきですか?それはパフォーマンスに役立ちますか?

私は何千ものドキュメントを検索しているので、通過しなければならないデータがたくさんあります。

4

2 に答える 2

2

はい、持っていないものには%を使用できますがIN、その他のものには を使用する必要がありますOR

次のようになります。

AND (entry_txt in ('fight', 'grab', 'push', 'strike', 'hit')
     OR entry_txt like 'confron%'
     OR entry_txt like 'aggres%'
     OR entry_txt like 'assa%')
于 2012-07-05T09:20:42.873 に答える