在mysql查询中搜索来自多个表的部分匹配字符串(非常复杂的查询)

时间:2015-12-26 12:33:35

标签: php mysql

我有3个表格 - businessproductssubproducts

这里的表格结构为http://sqlfiddle.com/#!9/f3342/1

我需要传递string进行搜索。它必须搜索所有三个表(所有列)并从id表返回businessbidbusiness id (id)表的products,而pidproduct id (id)表的sub_products

然后我需要按照businessproductssubproducts等表格的顺序对结果进行排序。

我怎么能做到这一切?

由于

1 个答案:

答案 0 :(得分:0)

如果它不必只是一个查询就很容易

SELECT id 
FROM business 
WHERE Concat(name, '', category, '', s_desc, '' , f_desc, '', address1, '', views) like '%test%'

这将搜索business表中包含'test'字符串的指定列。您可以扩展此查询以包括所有相关列以及要搜索的不同表。只需将您的搜索字符串从php传递到该查询,它将返回id。

P.S。不要将您的输入直接传递给您的查询(进程并首先将其转义),因为它将对sql注入开放。

我希望这会有所帮助。