我有一個表,其中具有這種結構的MySQL數據庫: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"
,並找到裏ght行。您看到它必須是不區分大小寫的搜索,並且查詢中末尾的點不存在。我如何實現這一點?
我試圖
SELECT id FROM papers WHERE UPPER(title) LIKE %s
,並轉換my_string在Python上的情況下,把一個「%」在my_string結束,但這並不縫處理一個很好的方式。它也沒有工作。 =)
感謝您的任何建議!
+1。我不知道「QUERY EXPANSION」。我只是閱讀手冊。 :) – 2011-03-20 19:18:21
我試過了。事實證明,查詢讓我獲得了很多結果。我想要的結果是所有結果的第三位。如果我將這部分查詢放在「WITH QUERY EXPANSION」中,也有許多結果,但我希望的結果是結果的第一行。有什麼不同? – Aufwind 2011-03-20 19:22:01
在http://dev.mysql.com/doc/refman/5.0/en/fulltext-query-expansion.html上閱讀關於WITH QUERY EXPANSION的更多信息 – Pentium10 2011-03-20 19:26:48