如何按Yii框架中的匹配数对MySql查询进行排序?

时间:2013-02-04 05:51:43

标签: php mysql yii

假设我有一个包含列产品名称的表。有各种各样的产品。我试图从表格中找出一些与产品名称和关键字相匹配的关键字。 例如,我有一个数组$ keyword,其中包含{nokia,lumia,510}等元素。现在在我的数据库中,我有一张桌子,里面有许多诺基亚lumia产品。当我将此查询传递给数据库进行搜索时,它会将所有nokia lumia产品都放在dataProvider中。我正在做的基本上是,取每个关键字,并在其上放置一个%keyword%search。有点像这样。

foreach($keywords as $k)
                $array[] = "product_name LIKE '%$k%'";

            $criteria->condition = implode(" OR ", $array);

它提供了包含product_name中任何关键字的所有结果,这很好。但我想根据关键字中的匹配数来缩短查询。比如,如果我有一个product_name“诺基亚Lumia 510”,那么它匹配bosth三种情况,那么它应该在第一个位置,在“诺基亚Lumia”产品的其余部分之后,因为它们匹配2个关键字。如何在yii上制作它。

1 个答案:

答案 0 :(得分:0)

使用带条件的order by子句