Mysql MATCH ПРОТИВ - В БУЛЕВОМ РЕЖИМЕ - PullRequest
0 голосов
/ 17 июля 2010

Мне нужно найти следующую строку: 'c ++'

Мой SQL-запрос выглядит следующим образом:

SELECT *
FROM shop_product
WHERE
   MATCH(shop_product.name, shop_product.product_model, shop_product.keywords, shop_product.part_number, shop_product.upc, shop_product.brand_name)
   AGAINST ('c++' IN BOOLEAN MODE))
GROUP BY `product_id`
LIMIT 0, 25

Этот скрипт не возвращает никаких результатов, даже если существуют записи, содержащие этослово.Как это решить?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 24 июля 2012

Слова, содержащие менее четырех символов, не ищутся в БУЛЕВОМ РЕЖИМЕ или ЕСТЕСТВЕННОМ РЕЖИМЕ.

1 голос
/ 17 июля 2010

«+» не является словом «слово».Возможно, вам нужно использовать LIKE или REGEXP.

0 голосов
/ 17 июля 2010

Вы можете искать без БУЛЕВОГО РЕЖИМА:

SELECT *
FROM shop_product
WHERE
   MATCH(shop_product.name, shop_product.product_model, shop_product.keywords, shop_product.part_number, shop_product.upc, shop_product.brand_name)
   AGAINST ('c++'))
GROUP BY `product_id`
LIMIT 0, 25

Я думаю, что + это просто булевский режим, специальный символ.

...