我可以做一个 MariaDB 全文查询,它搜索这样开头的单词:
select * from mytable
where match(mycol) against ('+test*' in boolean mode)>0.0;
这会找到像“test”、“tester”、“testing”这样的词。
如果我的搜索字符串包含特殊字符,我可以将搜索字符串放在引号中:
select * from mytable
where match(mycol) against ('+"test-server"' in boolean mode)>0.0;
这将找到包含字符串的所有行test-server
。
但似乎我不能将两者结合起来:
select * from mytable
where match(mycol) against ('+"test-serv"*' in boolean mode)>0.0;
这会导致错误:
Error: (conn:7) syntax error, unexpected $end, expecting FTS_TERM or FTS_NUMB or '*'
SQLState: 42000
ErrorCode: 1064
将“*”放在带引号的字符串中将不返回任何结果(如预期的那样):
select * from mytable
where match(mycol) against ('+"test-serv*"' in boolean mode)>0.0;
有人知道这是否是 MariaDB 的限制吗?还是一个错误?
我的 MariaDB 版本是 10.0.31