【发布时间】:2012-10-05 14:16:24
【问题描述】:
我在进行布尔搜索时遇到问题,首先我认为我的数据库/表有问题,但后来我尝试使用 1 列和示例值创建以下示例表,结果相同,它成功运行了一些单词和对其他人来说失败了,有什么想法吗?
成功运行的查询:
SELECT * FROM `temp` WHERE (match (txt) against ('develo*' IN BOOLEAN MODE)>0 )
SELECT * FROM `temp` WHERE (match (txt) against ('devel*' IN BOOLEAN MODE)>0 )
SELECT * FROM `temp` WHERE (match (txt) against ('senio*' IN BOOLEAN MODE)>0 )
但是当我尝试对“第二”或“第三”进行类似的搜索时,它会失败
SELECT * FROM `temp` WHERE (match (txt) against ('secon*' IN BOOLEAN MODE)>0 )
SELECT * FROM `temp` WHERE (match (txt) against ('third*' IN BOOLEAN MODE)>0 )
--- 以下是示例表和值-----
CREATE TABLE IF NOT EXISTS `temp` (
`txt` varchar(30) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Dumping data for table `temp`
--
INSERT INTO `temp` (`txt`) VALUES
('developer'),
('Developer'),
('Developer senior'),
('senior developer'),
('second job'),
('job second'),
('third'),
('third job'),
('job third');
【问题讨论】: