2012-03-05 78 views
3

我刚刚发现了一堆我的MySQL数据库流氓数据...MySQL - 查找部分字符串 - 全文?

得到它是通过一个列的唯一方式 - FILE_PATH包含剥离文件路径的版本斜线。还有在这个集合了几个流氓文件,我需要找到 - 它们都具有文件名“Thumbs.db”这个,但他们有各种各样的路径

例如:

F:DatasetGroupedByFormatsx-FMT-398Thumbs。 DB

我在球场上全文索引,但是下面的查询不给任何回报:

SELECT * FROM main_small WHERE MATCH `FILE_PATH` AGAINST ('Thumbs.db') 

响应:

MySQL returned an empty result set (i.e. zero rows). (Query took 0.0382 sec) 

我不确定这是否是因为我的语法错误,或者文本字符串是否需要用空格/标点符号隔开。

+0

如果你使用(“‘Thumbs.db’这个”)(用双引号括年短语)你的全文查询可能会奏效,但这也将找到“拇指分贝”(无)。 – Andrew 2012-03-05 21:11:23

回答

8

当然这是

select * from main_small where FILE_PATH like '%Thumbs.db' 

但是,如果没有,那么确实MySql Full text Search帮助?

+0

的确如此。谢谢。我不知道通配符在全文匹配上的作用。知道这非常有用。欣赏它。 – Jay 2012-03-05 21:04:30

2

只需使用LIKE

SELECT * FROM main_small WHERE `FILE_PATH` LIKE '%Thumbs.db' 
+0

谢谢,这当然是对的。我没有意识到%可以这样使用。 – Jay 2012-03-05 21:05:13

2

的问题是,您认为查询 '的Thumbs.db' 是一个全字。您需要找到某种方法来执行通配符搜索以选择这些行。如何:

SELECT * FROM main_small WHERE `FILE_PATH` LIKE '%Thumbs.db' 
+0

谢谢 - 这是正确的 - 今天我学到了一些新东西。 – Jay 2012-03-05 21:06:03