2
我为一家店铺建立了一个网站,该店铺使用sql表来管理他们产品的数据。MySQL全文搜索奇数行为
我使用全文搜索,因此用户可以通过股票轻松搜索。
搜索运行查询术语与产品的品牌,名称和描述相符,就像这样:
$search_prods = $db_connection->query("
SELECT `id`,`name`,`description`
FROM `Products`
WHERE Match(`brand`) Against('$term')
UNION
SELECT `id`,`name`,`description`
FROM `Products`
WHERE Match(`description`) Against('$term')
UNION
SELECT `id`,`name`,`description`
FROM `Products`
WHERE Match(`name`) Against('$term')
");
搜索的工作原理与品牌“潘多拉”打交道时,除了罚款。如果我搜索不同的品牌,我会得到我的结果。如果我搜索潘多拉盒子,我会在潘多拉盒子的名称和结果中找到与潘多拉盒子相关的结果。不过,我无法在品牌中获得潘多拉的任何结果。他们确实存在!我试过在MySql中运行查询,并得到同样的问题。
什么是在'品牌'栏中搜索'潘多拉'是导致问题?任何人有任何想法?
谢谢!
感谢您的回答,并感谢您的建议。我最初编写了我的查询,但失败了。由于我读的范例只与一列匹配,因此我认为这是该函数的一个限制。我猜我第一次犯了一个错字或什么... – user1537360 2013-04-30 16:30:49
@ user1537360“*我写了我最喜欢的查询*”=>你是指我的答案的第一部分(添加'BOOLEAN MODE')或到第二部分(简化查询)?我的根本问题是:它解决了问题吗? ;) – RandomSeed 2013-04-30 16:34:26
我的意思是我原来的结构化查询就像在你的三个整合建议中一样。在阅读您的评论后,我再次尝试并得到相同的问题,但后来我注意到您的查询包含布尔模式。当我包含布尔模式时,它解决了这个问题。 至于我在OP中提到的问题,你已经发现了。问题是我的演示产品中有5/8个是该品牌的。我添加了一些其他品牌的产品,问题解决了。 我还没有研究过这个功能,因为我一直在这么急,所以谢谢你的帮助! – user1537360 2013-04-30 19:13:36