mysql匹配不匹配括号中的文本

时间:2014-07-23 09:40:59

标签: mysql match brackets

我尝试使用匹配来返回搜索结果。 我有一个问题,虽然它没有返回匹配文本在括号中的结果。只是摆脱括号并不是我害怕的选择。

所以运行下面的sql小提琴我希望它返回两个结果,而不是一个

CREATE TABLE `courses` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `course_code` varchar(100) NOT NULL,
  `course_name` varchar(100) DEFAULT NULL,
  `startdate` varchar(100) DEFAULT NULL,
  `starttimestamp` varchar(45) DEFAULT NULL,
  `prospectus_title` varchar(500) DEFAULT NULL,
  PRIMARY KEY (`id`),
  FULLTEXT KEY `info` (`course_name`,`prospectus_title`,`course_code`)
) ENGINE=MyISAM AUTO_INCREMENT=981074 DEFAULT CHARSET=utf8;


INSERT INTO `courses` (`id`, `course_code`, `course_name`, `startdate`, `starttimestamp`, `prospectus_title`) VALUES 
('1', '1234', 'vrqtest', 'time','time', 'vrqtest'), 
('2', '5678', '(vrq)test', 'time','time','(vrq)test');

SELECT * FROM courses force index(info) 
WHERE starttimestamp IS NOT NULL AND ( 
MATCH ( course_name ) against ('vrq*' in boolean mode ))

SQL Fiddle

只返回第一个记录,但也应该返回第二个记录。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

原因如下:

https://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_ft_min_word_len

  

<强>的ft_min_word_len

     

要包含在a中的单词的最小长度   FULLTEXT指数。默认为4

(vrq)测试太短,无法匹配。添加一个额外的字符(例如(vrqa)测试),它匹配。