2012-02-06 70 views
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

+1,有趣的問題......不知道,但。我懷疑你可以在DQL中做到這一點。 – greg0ire 2012-02-06 21:46:58

+2

查看[this](https://groups.google.com/group/doctrine-user/browse_thread/thread/ffac5e58feac9ef9?pli=1)線程,這不是一個解決方案,而是一種解決方法。 – Maerlyn 2012-02-06 22:38:25

回答

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()使我能夠檢索正確的文檔,並按照搜索結果頁面上的相關性順序顯示它們。

聲明:我不知道支持該功能的水平,但它適合我的罰款在當時:-)