PHP Version 5.8.8
我正试图创建一个不敏感的案例"完全匹配"查询仅返回完全匹配结果,没有相关性剩余部分,如下面的查询2和3中的结果。
直接切入追逐,查询6正常工作!!
我创建了一个包含一些测试数据的表:
Tablename = 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)
我打算将此信息发布为信息而不是问题,但找不到合适的地方。由于我花了很多时间搞清楚这一点,我认为对那里的人有用并且无法在任何地方找到答案。