我有一个包含地名的表place
,其中一些地名中有一个撇号,例如名为OJ's
的地名。
当有人写了完全相同的单词时,他会得到位置数据,但如果他漏掉了撇号'
,他就什么都得不到。
有人能帮我写正确的mysql
语句吗?不管用户是否写下撇号,让我来获取字符串。
尝试soundex。。这将忽略特殊字符
SELECT * FROM `test` WHERE soundex(column)=soundex('input')
示例
CREATE TABLE IF NOT EXISTS `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`itemname` varchar(5) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
--
-- Dumping data for table `test`
--
INSERT INTO `test` (`id`, `itemname`) VALUES
(1, 'ab''s'),
(2, 'abs'),
(3, 'aa'),
(4, 'a''a'),
(5, 'C'),
(6, 'C');
SELECT * FROM `test` WHERE soundex(itemname)=soundex('abs')
将返回
1|ab's
2|abs