mysql innodb匹配了领先的通配符错误



最近,我将DB Tabels从Myisam更改为InnoDB。现在我有一些疑问可以利用匹配和反对。

以下查询是一个示例查询,该查询从myisam转换为innodb

后导致错误
    SELECT * FROM test WHERE MATCH (test_desc) AGAINST ("*+test" IN BOOLEAN MODE);
    // error: Error Code: 1064. syntax error, unexpected '+', expecting FTS_TERM or FTS_NUMB or '*

当我删除 *或将其放置在" "签名后,我的行与以前相同,但这是正确的吗?

    SELECT * FROM tests WHERE MATCH (test_desc) AGAINST ("+*test" IN BOOLEAN MODE); // works, * after +, BUT IS THIS CORRECT

test说" test" 应该存在
+test说必须存在"测试"。
test*寻找以"测试"开头的任何东西。
+test*说必须存在以"测试"开头的东西。

这些是您的选择;您想要哪个?

(Myisam对语法有些松懈; InnoDB更严格。(

相关内容

  • 没有找到相关文章

最新更新