2010-06-29 132 views
0

我試圖搜索與OR值和AND與布爾運算符

這裏MySQL全文索引搜索是一個例子或

SELECT * FROM contacts_items WHERE MATCH (item_id) AGAINST ('(10 | 1)' IN BOOLEAN MODE); 

這工作,但如果我想要做的,

SELECT * FROM contacts_items WHERE MATCH (item_id) AGAINST ('(10 & 1)' IN BOOLEAN MODE); 

這將試圖找到在同一行中的10和1的聯繫人,但我想要搜索的聯繫人有10和1作爲item_id但多個行

contact_id item_id 
    1    1 
    1    10 
    2    10 

的AND搜索將返回CONTACT_ID - 1

我覺得這是不可能的一個搜索,但想使代碼更復雜的則需要之前,我會問。

感謝蒂姆

回答

1

首先,你是濫用ANDOR全文搜索操作符。 |&reserved for future use;如documentation中所述使用+-

另一個方面,我似乎不瞭解你的例子是爲什麼你使用fulltext搜索,如果你正在使用整數。一個簡單的WHERE item_id IN (1, 10)就足夠了。

但是,如果您需要fulltext搜索,我會建議使用Sphinx

+0

感謝您的支持!那麼是不是有可能找到只有項目1和10的聯繫人? – Tim 2010-06-29 09:41:50

+0

'SELECT * FROM contact_items WHERE item_id IN(1,10);' – 2010-06-29 12:45:36