我正在尝试使用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
我认为这不可能只进行一次搜索,但我认为在使代码变得更复杂之前我会问它。
谢谢蒂姆
答案 0 :(得分:1)
首先,您滥用AND
和OR
全文搜索运算符。 |
和&
为reserved for future use;使用documentation中所述的+
或-
。
我似乎从您的示例中无法理解的另一个方面是,如果您使用整数,为什么使用fulltext
搜索?一个简单的WHERE item_id IN (1, 10)
就足够了。
但是,如果您需要fulltext
搜索,我建议您使用Sphinx。