我在一个名为article的表中有一个查询。
$q = Doctrine_Query::create()
->from('article a')
->WhereIn('a.name', $input)
->execute();
$input = array(
0 => Tomato,
1 => Apple,
2 => Banana
);
我找到所有输入。但查询的输出是一个不同的顺序:Apple,Banana,Tomato。我希望订单像输入?我怎么能意识到它?
答案 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()
,我可以检索正确的文档,并按搜索结果页面上的相关性顺序显示。
免责声明:我不知道对此功能的支持程度,但当时它很适合我: - )