开发者

Mysql fulltext search with boolean operators

I am trying to search for values with OR and AND

here is a example for OR

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

This works but if I wanted to do AND

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

This will attempt to find contacts with 10 and 1 in the same row but I want to search for a contacts who have 10 and 1 as an item_id but over multiple rows

eg

contact_id    item_id
    1             1
    1             10
    2             10

The AND search would return c开发者_JAVA技巧ontact_id - 1

I think this isn't possible with one search but thought I would ask before making the code more complex then it needs be.

Thanks Tim


First of all, you are misusing the AND and OR fulltext search operators. | and & are reserved for future use; use + or - as stated in the documentation.

Another aspect I don't seem to understand from your example is why are you using fulltext search if you are using integers. A simple WHERE item_id IN (1, 10) would suffice.

However, if you need fulltext search I would recommend using Sphinx.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜