2012-07-13 77 views
0

我写一个PHP/MYSQL搜索功能,这需要用户搜索查询(字符串),并通过预定义的字段和数量它从一个表匹配到记录(例如:卧室= 2,MAX_PRICE < 100)如何通过另一个查询来订购MYSQL查询?

这工作正常,但现在我想按条件排列结果。因此,例如:

  • 的用户查询是 “2卧室顶楼

  • 功能匹配有一个值,该行 卧室

记录

我现在想要保持匹配的结果,但要根据匹配的结果排序结果描述一行的“复式”的值(在描述字符串的任何地方(这是很多的话)的长字符串)

我可以匹配在说明书中,词语“复式”的结果,但用匹配结果首先排序结果的最佳方法是什么?

因此,基本上,您如何通过另一个查询来排序结果?

回答

3

你不知道。你写一个更复杂的ORDER BY条款。

SELECT ... 
    ORDER BY ..., description NOT LIKE "%penthouse%" 

(我们反转表达,因为假单前真)

+0

好一个!谢谢 – 2012-07-13 17:52:12

+0

我忘了提及,如何处理查询字符串中的多个单词(例如:带按摩浴缸的复式房)。那么,我如何按照搜索字符串中单词最多的描述进行排名呢?如果有帮助,我已将搜索查询字符串分解为数组? – 2012-07-13 17:56:42

+1

这很难。您需要先获得匹配计数,然后对结果进行反向排序。 – 2012-07-13 18:04:32