按输入排序查询

时间:2012-02-06 19:30:23

标签: php symfony1 doctrine doctrine-1.2

我在一个名为article的表中有一个查询。

$q = Doctrine_Query::create()
                    ->from('article a')
                    ->WhereIn('a.name', $input)
                    ->execute();

$input = array(
    0 => Tomato,
    1 => Apple,
    2 => Banana
); 

我找到所有输入。但查询的输出是一个不同的顺序:Apple,Banana,Tomato。我希望订单像输入?我怎么能意识到它?

1 个答案:

答案 0 :(得分:2)

我在一个将MySQL作为RDBMS的项目中使用了类似的东西:

$ids = array(2,9,3,64,23,38); // example IDs
$qry->addOrderBy("FIND_IN_SET(q.id, '" . implode(",", $ids) . "')");

这是在$ids中的值已知且受信任的项目中,来自Xapian搜索查询,该查询按搜索词的相关性排序。使用FIND_IN_SET(),我可以检索正确的文档,并按搜索结果页面上的相关性顺序显示。

免责声明:我不知道对此功能的支持程度,但当时它很适合我: - )