2017-01-24 28 views
0

PHP 5.8.8版MySQL的全文“精确搜索”的时候没有找到匹配

我试图创建一个区分大小写的“精确匹配”的查询,只有准确返回,实际工作没有关联虚假点击匹配结果而没有相关性残留,如下面查询2和3中的结果。

切直追,查询6作品!

我创建的表有一些测试数据:

表名= test_boolean_mode,列名=全文(utf8_bin)

123 The Black Cat 456 
The Black Cat 
98 The Black Cat 
The Black Cat 76 
543 the 456 
black cat 
hgs cat 
gres black jgfx 
black 99 

查询1(区分大小写):

SELECT * 
FROM `test_boolean_mode` 
WHERE (MATCH `fulltext` AGAINST ('The Black Cat' IN BOOLEAN MODE)) 

返回:

123 The Black Cat 456 
The Black Cat 
98 The Black Cat 
The Black Cat 76 

查询2(结果是什么,我叫剩菜或虚假点击):

SELECT * 
FROM `test_boolean_mode` 
WHERE (MATCH `fulltext` AGAINST ('The black cat' IN BOOLEAN MODE)) 

返回:

black cat 
gres black jgfx 
black 99 

查询3(结果是什么,我叫剩菜或假命中)

SELECT * 
FROM `test_boolean_mode` 
WHERE (MATCH `fulltext` AGAINST ('the black cat' IN BOOLEAN MODE)) 

返回:

black cat 
gres black jgfx 
black 99 

下面是与测试LIKE操作

查询4(返回什么比二进制模式比较好,然而仍然区分大小写):

SELECT * 
FROM `test_boolean_mode` 
WHERE (`fulltext` LIKE '%the black cat%') 

返回无

查询5(这是正确的,但仍区分大小写):

SELECT * 
FROM `test_boolean_mode` 
WHERE (`fulltext` LIKE '%The Black Cat%') 

返回:

123 The Black Cat 456 
The Black Cat 
98 The Black Cat 
The Black Cat 76 

查询6(这是正确的和完美的作品,返回nothinng如果不匹配,不区分大小写!):

SELECT * 
FROM `test_boolean_mode` 
WHERE (`fulltext` COLLATE UTF8_GENERAL_CI LIKE '%the black cat%') 

返回:

123 The Black Cat 456 
The Black Cat 
98 The Black Cat 
The Black Cat 76 
+0

你的问题是?你似乎正在得到你想要的结果。 –

+0

对不起,我只是想分享我一直试图找到答案的信息,现在已经三年了,无法在任何地方找到答案。我想我搞砸了,有没有地方可以在这​​里发布信息而不是问题? –

回答

0

我打算张贴此作为信息不是一个问题,但找不到一个地方这样做。由于我花了这么多时间搞清楚这一点,我认为这对于那些在那里的人来说很有用,并且在任何地方都找不到答案。