2013-07-10 38 views
1

我有一個名爲「關鍵字」的長文本字段的作業表。如何根據部分字符串匹配排除行?

我想形成一個SELECT語句,我可以匹配某些關鍵字,但排除其他關鍵字。

例如,我需要SQL「給我所有關鍵字包含單詞」肖像「的作業,但排除那些包含」戶外「一詞的作業。

謝謝! [如果需要修改,或其他信息需要的問題,只是讓我知道。]

回答

6

如何:

. . . WHERE keywords LIKE '%portraits%' AND keywords NOT LIKE '%outdoors%' . . . 

一個更好的辦法是確定關鍵字的一個單獨的表的工作。每個作業/關鍵字組合應該有一行。通過適當的索引,您可以大大加快查找帶或不帶關鍵字的作業。

+0

感謝您的建議。一旦我得到我的數據位置,它將有興趣檢查查詢與長時間查詢與查詢另一個表之間的表現。另一個可能會影響性能的變量是與完全匹配進行部分匹配的能力(即LIKE「%port%」vs =「portraits」) – skippix

+0

爲什麼不給出一個索引示例和另一個表? –

3
SELECT * 
FROM [table_name] 
WHERE keywords like '%portraits%' 
    AND keywords not like '%outdoors%';