最近,我将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更严格。(