2012-01-20 22 views
0

LIKE演算子を使用したSQLクエリを、等価性と不等式フィルタのみを使用し、LIKE演算子を使用しないSQLクエリに変換することは可能ですか?両方のクエリの出力は同じでなければなりません。変換LIKE演算子を含むSQLクエリとフィルタ付きSQLクエリ

すればできますか?

私はMySQLデータベースを使用しています。

私は解決しようとしましたが、成功しませんでした。

+1

場合によっては、これは可能かもしれませんが、すべてではありません。あなたの質問とこれまでに試したことを投稿してください。なぜこれを行う必要があるのか​​を言うことは良い考えかもしれませんが、他の人があなたの問題に対するより良い解決策を知っているかもしれません。たとえば、「REGEXP」。 – klennepette

+0

なぜ変換しますか? – xdazz

+0

@klennepette LIKE演算子を必要とするクエリ。 Ex-最初の2文字SRを持つ生徒の名前を見つける。 – SRK

答えて

0

私はあなたの質問を理解していないが、あなたは、このようにMySQL関数を使用することができますよう(functionのいずれかの種類を使用しない

select 
    mycol 
from 
    mytbl 
where 
    left(mycol,4) = "test" 
+0

質問LIKEの機能を提供するために、等値フィルタと不等式フィルタのみ(集計関数ではない)のみを使用したいと思います。出来ますか? – SRK

+0

@jonlesterはすべての「好き」のためには機能しません。例: 'like '%test%' –

1

select 
    mycol 
from 
    mytbl 
where 
    mycol like "test%" 

は同じになりますあなたは@jonlesterの答えにコメントとして述べました)あなたが望むことをすることは不可能です。

シンプルな機能でそれを行う方法は、次のようになります:

select 
    mycol 
from 
    mytbl 
where 
    INSTR(mycol,test) > 0 
0

は、次の2つのオプションを持っている...

1. SELECT myColumn FROM myTable WHERE INSTR(myColumn,'myString') = 1 

2. SELECT myColumn FROM myTable WHERE LOCATE('myString',myColumn) = 1 

グッドラック!乾杯!!!

0

あなたは、あなたが使用することを可能にするためにを更新し、彼らが挿入されている時に、別の列/にそれらのサブ要素を切り離すことができ、列はを照会される時にはサブ要素を見つけることLIKEを使用している場合検索条件の等価演算子の

0

要件を指定するときには、フルテキストインデックスを統合する方向を検討する必要があります。

e。 SOLR、Luceneなどのソリューションを見てください。ここではSearch Engine - Lucene or Solrから始めて、そこから/ googleをクリックしたいと思うかもしれません。