2010-10-17 46 views
0

我正在嘗試搜索字段name中沒有字符串列表的表。我用:MySQL NOT IN查詢問題

SELECT * 
FROM members 
WHERE name NOT IN ('bob', 'jim', 'leroy'); 

但它仍然返回包含這些單詞的匹配。我已經搜索了高和低的答案。誰能幫忙?

+1

你能否發表一個數據集,其中包含你想要過濾的名字? – Simon 2010-10-17 22:48:02

回答

3

name NOT IN ('bob', 'jim', 'leroy')相當於name!='bob' and name!='jim' and name!='leroy'

也許你想

name not like '%bob%' and name not like '%jim%' and name not like '%leroy%' 

呢?

+0

是的,但我認爲會有一個更有效的方式,也許不是 – 2010-10-17 22:48:51

+0

@Adam在MySQL中我認爲這是一樣好。如果您需要提高性能,請查看http://sphinxsearch.com等外部搜索引擎。 – 2010-10-17 22:59:10

+0

MySQL有[本地全文搜索功能](http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html) – 2010-10-17 23:30:09

1

這只是匹配只是其中一個名稱的值。你可以試試WHERE name NOT LIKE "%bob%" AND NOT LIKE "%jim%" AND NOT LIKE "%leroy%"