使用布尔运算符进行Mysql全文搜索

时间:2010-06-29 07:45:40

标签: mysql full-text-search

我正在尝试使用OR和AND

搜索值

这是OR

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

这有效,但如果我想做AND

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 个答案:

答案 0 :(得分:1)

首先,您滥用ANDOR全文搜索运算符。 |&reserved for future use;使用documentation中所述的+-

我似乎从您的示例中无法理解的另一个方面是,如果您使用整数,为什么使用fulltext搜索?一个简单的WHERE item_id IN (1, 10)就足够了。

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