2010-03-25 76 views
1

我想從包含輸入字符串中至少一個單詞的一個表中獲取所有記錄。例如,輸入參數=「堆棧溢出流」:SQL Server中的LIKE運算符

select * 
from sample 
where name like '%stack%' 
    or name like '%over%' 
    or name like '%flow%' 

如何尋找其中包含‘堆’或‘過’或‘流’的記錄?

+1

什麼問題? – 2010-03-25 04:50:13

+0

@codeka:我認爲問題是「代碼是什麼?......怎麼做?」 – hallie 2010-03-25 04:51:37

+0

@hallie:我想我明白了,他希望能夠將字符串「stack over flow」轉換爲SQL查詢的代碼,該查詢將搜索包含「stack」*或*「over」*或*「flow」的任何名稱。接下來的問題是什麼語言? – 2010-03-25 04:54:49

回答

6

您提供的代碼應該可以工作。但不要使用它。它將無法使用任何索引,因此可能會非常緩慢。查看全文索引和CONTAINS關鍵字。

+0

簡而言之,如果啓用了CLR,則可以使用正則表達式。 – 2010-03-25 05:13:16

+0

這聽起來像只有一個輸入參數,他需要解析,然後每個單詞的喜歡。 – Kelsey 2010-03-25 05:15:04

+2

絕對正確。與通配符一樣,第一個字符幾乎總是一件壞事,因爲它會強制執行表掃描並且全文索引會更好。 – HLGEM 2010-03-25 14:21:15