2

最小一致基準に基づいて結果を返す SQL クエリを作成することは可能ですか。例えば

SELECT * 
FROM table 
WHERE column <matches 80% of value 'abbey Road'>

基本的に、クエリは、文字列内の abbey と road を照合して、列値 'abbey road' と 'abbey mahatma gandhi road' を含む行を返す必要があります。

4

3 に答える 3

4
Select * from TableName 
where ColumnName Like ('%'+Replace(@texttosearch,' ','%')+'%')

このクエリに送信する前に、検索するテキストが既にトリムされていることを確認してください。上記のクエリは、位置に関係なく、修道院の道を含むすべての文字列の結果を返します。

于 2013-08-06T04:19:59.133 に答える
3

ワイルドカードで LIKE 演算子を使用できます。次のクエリは、abbey と road をこの順序で含むすべての文字列に一致します。

SELECT *
FROM TABLE
WHERE COLUMN LIKE '%abbey%road%';
于 2013-08-06T04:20:36.150 に答える
0

文字列にスペースを含む単語がある場合は、文字列だけで一致させることができます:

select *
from test1
where col1 like '%' + replace(@text, ' ', '%');

いくつかの表に単語がある場合は、次のようにすることができます。

select t.col1
from test1 as t
    inner join @words as w on t.col1 like '%' + w.word + '%'
group by t.col1
having count(w.word) = (select count(*) from @words)

このクエリを試すには、 sqlfiddle の例を参照してください

于 2013-08-06T04:36:11.273 に答える