2016-08-18 11 views
2

現在のMySqlワイルドカードはLIKE '%A%B%'です。これは、誰もが、私は事前にまたは B.ワイルドカードのSQL OR文

感謝のいずれかを含む値を返すために、ワイルドカード文を変更することができますどのようにお勧めできます B.

が含まれている値を返すことができます。

+3

あなたは 'LIKE '%%' またはColumnNameにLIKE '%のBの%''のような何かを行うことができます。それは正確ではないかもしれません。しかし、それを試してください – BNN

+0

答えをありがとう。しかし、ワイルドカードを変更するだけで結果を得る方法はありますか? @stack – User420

+1

いいえ、少なくとも 'like'演算子ではありません。 'rlike'演算子を使うとそれを実行することができます。 – Shadow

答えて

2

は、下のリンクを見てみましょう。あなたに役立ちます

SQL Server using wildcard within IN

希望

+0

これは動作します。しかし、大きなパフォーマンス上の欠点があります。 REGEXPとLIKE '%something%'はどちらも悪いほど悪いです。それでそれらを組み合わせると状況が悪化します。 – e4c5

+0

私はこれに完全に同意します。しかし、これ以外には、私はOPを助ける方法を見つけることができませんでした。何人かの高齢者がいて、 – BNN

+0

心配しないでください。私はこれが悪い答えだとは思わなかった。 +1私から – e4c5

2

あなたはそこにさまざまな方法の多くは、正規表現としてこれを書いている以上は、基本的にあなたがREGEXPを使用しないようにしたい一般的にAまたはB

を含むと意味REGEXP

select * from Table1 where some_column REGEXP '[AB]' 

を使用することができますLIKE '%something'はインデックスを使用しないためです。したがって、大きなテーブルの場合、これらの操作は使用できなくなります。この種の検索を実行する場合は、「最良のデータベース設計が得られましたか」、「全文検索を使用することはできますか?あなたはより多くの情報については

select * from tablename where (column_name like '%test%' or same_column_name like '%test1%' or 
      same_column_name like '%test2%' or same_column_name like '%test3%') 

以下のようでカッコOR条件内であなたが望むように多くのlike演算子を追加することができます

関連する問題