我正在嘗試搜索字段name
中沒有字符串列表的表。我用:MySQL NOT IN查詢問題
SELECT *
FROM members
WHERE name NOT IN ('bob', 'jim', 'leroy');
但它仍然返回包含這些單詞的匹配。我已經搜索了高和低的答案。誰能幫忙?
我正在嘗試搜索字段name
中沒有字符串列表的表。我用:MySQL NOT IN查詢問題
SELECT *
FROM members
WHERE name NOT IN ('bob', 'jim', 'leroy');
但它仍然返回包含這些單詞的匹配。我已經搜索了高和低的答案。誰能幫忙?
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%'
呢?
是的,但我認爲會有一個更有效的方式,也許不是 – 2010-10-17 22:48:51
@Adam在MySQL中我認爲這是一樣好。如果您需要提高性能,請查看http://sphinxsearch.com等外部搜索引擎。 – 2010-10-17 22:59:10
MySQL有[本地全文搜索功能](http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html) – 2010-10-17 23:30:09
這只是匹配只是其中一個名稱的值。你可以試試WHERE name NOT LIKE "%bob%" AND NOT LIKE "%jim%" AND NOT LIKE "%leroy%"
你能否發表一個數據集,其中包含你想要過濾的名字? – Simon 2010-10-17 22:48:02