在mysql中使用或不使用撇号获取字符串

时间:2014-10-26 11:21:53

标签: php mysql sql

我有一个表place,其中包含地点名称,其中一些名称中有一个撇号,例如名为OJ's的地方。

当有人写出完全相同的单词时,他会得到地方数据,但如果他错过了撇号',他就什么也得不到。

任何人都可以帮我写出正确的mysql声明,让我获取字符串,无论用户是否记下撇号。

1 个答案:

答案 0 :(得分:0)

尝试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