2012-02-24 23 views
22

aşağıdaki WHERE maddesi vardır: daha sonra sorgu başarıyla yürütür ve filtrelersözdizimi hatası yakın

WHERE (@Keywords IS NULL 
      OR (CONTAINS((p.Title, p.Area, p.[Message]), @Keywords)) 
     ) 

@Keywords = 'control' Eğer kayıtlarım

@Keywords = 'control of', sonra aşağıdaki hatayı alıyorum:

Syntax error near 'of' in the full-text search condition 'control of'.

Bu neden olduğunu ve sorunu çözmek için ne yapabilirim?

Bu yöntemin, LIKE koşulunu kullanarak kullanılmasının temel nedeni, birden fazla sözcük arayabilmemdir.

cevap

27

Eğer

SET @Keywords = '"control of"' 

ait kontrolü için tam aramak istiyorsanız, aşağıdaki, kontrol ve ait aramak kullanmak istiyorsanız çift tırnak içinde anahtar içine alın:

SET @Keywords = 'control AND of' 

Ancak sunucu olabilir düşünün 'un bir çöp veya durdurma sözcüğü olarak kullanılması, bu durumda aşağıdakileri kullanın:

SET @Keywords = 'control AND "of"' 
+0

Bu olay yanlışlıkları önledi. Bununla birlikte, sonuçlar yalnızca bu satırlardan biri 'kontrol' içeriyorsa geri döner. Bunun tam metin arama ile çalıştığını ve böylece “kontrol” almasını sağlayacağını düşündüm. – Curt

+1

Olabilir - sonuçları karşılaştırmak için tüm 3 seçeneği denemelisiniz. Ve ** çöp ** kelimeleri dikkat - sunucu sadece bu ilginç ve ilgili değil –

+5

Şerefe tekrar değil varsayımını aramaktan bu kelimeleri çıkarır. Ancak '@ Keywords', Web Uygulamasından geçirilen bir parametredir, bu yüzden metin üzerinde kontrolüm yok. "" "Yerine" "ve" "kabul edilebilir bir çözüm getirecek misiniz? Böyle arama yapmanın ortak yolu nedir? Şerefe – Curt