0
我有一个产品表。使用3个不同的查询来执行搜索以获得大多数匹配结果。但是我得到了很少的失败者,例如分页,因此需要将我的3个查询合并为一个,并且仍然给出相同的结果。结合Mysql子查询
这里是我的查询和人员对每个做
查询1说明:此查询获取精确匹配搜索字符串
SELECT *,
MATCH (product_name) AGAINST ('k' IN BOOLEAN MODE) as distance,
MATCH (product_description) AGAINST ('k' IN BOOLEAN MODE) as distance2
FROM products
INNER JOIN shops ON shops.shop_id = products.shop_id
WHERE MATCH (product_name) AGAINST ('k')
OR MATCH (product_description) AGAINST ('k')
ORDER BY distance DESC, distance2 DESC
LIMIT 0, 9;
问题2:这个查询得到的所有结果,其中搜索字符串是字符串的一部分减去查询结果然后将结果添加到数组
问题3:此查询获取最匹配的查询1和查询2的搜索字符串减去结果增加了结果阵列
SELECT *,
fuzzy_substring('k', product_name) as distance,
fuzzy_substring('k', product_description) as distance2
FROM products
INNER JOIN shops ON shops.shop_id = products.shop_id
WHERE (fuzzy_substring('k', product_name) < 3
OR fuzzy_substring('k', product_description) < 3)
AND product_id NOT IN ('pr933j4', 'Posr49il', 'p4021dd')
order by distance ASC, distance2 ASC
LIMIT 0, 9;
我无法弄清楚如何将这个三个查询任何建议,结合一个正确的方向是高度赞赏。 注“K”是字符串被搜索
提示:'UNION'或'JOIN'我看不出这里有什么问题 –
显示美国DB模式,样品数据和预期产出。 \t请阅读[**如何提问**](http://stackoverflow.com/help/how-to-ask) \t \t这里是一个伟大的地方[** START **] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)来了解如何提高您的问题质量并获得更好的答案。 \t [**如何创建一个最小,完整和可验证的示例**](http://stackoverflow.com/help/mcve) –
@JuanCarlosOropeza实际上是在尝试UNION。如何加入工作? – dannjoroge