在mysql中获取带或不带撇号的字符串


Get Strings with or without apostrophe in mysql

我有一个包含地名的表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