2015-09-02 2 views
0

Мне нужно было перейти из MyISAM в InnoDB. В процессе я обнаружил, что приложение вернуться в настоящее время ошибки на некоторых поисках:Как перенести MySQL Полнотекстовый поиск из MyISAM в InnoDB

1064 синтаксической ошибке, неожиданной «)», ожидая $ конца

Есть ли какие-либо существенные изменения или символы, которые я должен уйти ? 80% поисковых запросов работают нормально.

характер - и) и @ не работают

например

SELECT MATCH (anchor) AGAINST ('te--st' IN BOOLEAN MODE) score 
FROM seo_content_links 

SELECT MATCH (anchor) AGAINST ('te)st' IN BOOLEAN MODE) score 
FROM seo_content_links 

SELECT MATCH (anchor) AGAINST ('[email protected]' IN BOOLEAN MODE) score 
FROM seo_content_links 

Это очень похоже на ошибку в MySQL.

+0

вы можете предоставить использовать фактические запросы ... – BK435

+0

Вы уверены, что нет пространства вокруг '--'? '--' - это токен« here is end of the line comment ». –

+0

есть. Это обычный ввод текста. Мне нужно было бы избежать этого, если бы это поведение изменилось. Приложение работало над mysql 5.5 с полнотекстовым поиском таблицы myisam. – merlin

ответ

0

Я подозреваю, что это ошибка в MySQL 5.6.x.

Одно из возможных решений заключается в замене символов в вопросе:

$text = addslashes(str_replace(array("--", "@", ")", "(", "-"), " ", $text));

Смежные вопросы