首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP SQL - match() match ()

PHP SQL - match() match ()
EN

Stack Overflow用户
提问于 2014-09-02 00:30:47
回答 1查看 93关注 0票数 0

我搞不懂下面的代码。我已经找了好几个小时了,但似乎什么也找不到。

我要做的就是找到所有符合条件的单词。在这个例子中,我试图找到包含单词“鞋”或“鞋”等的所有条目(注意星号),也包含“皮革”或皮具等,但也不包括单词trainer,boot,high heels,jacket,trainers,腰带或高跟鞋

代码语言:javascript
运行
复制
SELECT * FROM wp_posts WHERE post_type = 'product' AND MATCH (post_content,post_title,post_name) AGAINST ('"*shoe*" "*leather*" -"trainer" -"boot" -"high heels" -"jacket" -"trainers" -"belt" -"pumps" ' IN BOOLEAN MODE)

我似乎不能正确理解逻辑,我得到的结果似乎只包含"Shoe(s)“而不包含"leather(s)”或"Leather(s)但不包含"shoe(s)“我也尝试了以下方法,但没有成功:

代码语言:javascript
运行
复制
SELECT * FROM wp_posts WHERE post_type = 'product' AND MATCH (post_content,post_title,post_name) AGAINST ('+"*shoe*" +"*leather*" -"trainer" -"boot" -"high heels" -"jacket" -"trainers" -"belt" -"pumps" ' IN BOOLEAN MODE)

我已经学习了如何使用"+“和"-",但我不知道如何在上面的场景中使用它们。

如果有人能帮我指明正确的方向,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2014-09-02 03:16:12

你的代码:

SELECT * FROM wp_posts WHERE post_type = 'product‘AND (post_content,post_title,post_name)与(’“*鞋*”“*皮革*”-“运动鞋”-“长靴”-“高跟鞋”-“夹克”-“运动鞋”-“腰带”-“高跟鞋”‘在布尔模式下)

我相信您正在寻找的(使用布尔模式)类似于:

SELECT * FROM wp_posts WHERE post_type = 'product‘AND (post_content,post_title,post_name) AND (’*shoe* *leather* -trainer -boot -"high heels“-jacket -trainers -belt -pumps‘IN BOOLEAN MODE)

我已经删除了无关的引号。星号(*)在引号之间不会像预期的那样工作,因为引号中的东西是按字面意思理解的。请参阅MySQL FullText Boolean了解本节内容:

“用双引号(”)字符括起来的短语仅与键入时按字面意思包含该短语的行匹配。全文引擎将短语拆分成单词,并在全文索引中搜索单词。非单词字符不需要完全匹配:短语搜索只要求匹配包含与短语完全相同的单词,并且顺序相同。例如,“测试短语”与“测试,短语”匹配。如果短语不包含索引中的单词,则结果为空。例如,如果所有单词要么是停用词,要么比索引单词的最小长度短,则结果为空。

在你的代码中-“*鞋*”和-“*皮革*”将不会像预期的那样工作。删除引号应该可以解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25609915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档