【发布时间】:2011-03-20 18:59:53
【问题描述】:
我在 MySQL 数据库中有一个具有以下结构的表:
CREATE TABLE `papers` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(1000) COLLATE utf8_bin DEFAULT NULL,
`booktitle` varchar(300) COLLATE utf8_bin DEFAULT NULL,
`journal` varchar(300) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `title_fulltext` (`title`),
FULLTEXT KEY `booktitle_fulltext` (`booktitle`),
FULLTEXT KEY `journal_fulltext` (`journal`)
) ENGINE=MyISAM AUTO_INCREMENT=1601769 DEFAULT CHARSET=utf8 COLLATE=utf8_bin
现在我知道在列标题中,在数百万行中的某处,有一行包含字符串
nFOIL: Integrating Naïve Bayes and FOIL.
我要找
my_string = "nFOIL: integrating Naïve Bayes and FOIL"
并找到正确的行。您会看到它必须是不区分大小写的搜索,并且查询中缺少末尾的点。我该如何实现?
我试过了
SELECT id FROM papers WHERE UPPER(title) LIKE %s
并在 python 中将 my_string 转换为大写,并在 my_string 的末尾添加一个“%”,但这并不是处理这个问题的好方法。它也没有用。 =)
感谢您的任何建议!
【问题讨论】:
标签: python mysql search full-text-search