84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
yii 中order by field 如何拼接在orderBy中,
,現在印出來的sql,而我本身所需要的sql是這樣,請問這個問題怎麼解決,這個是參考mysql中的order by field(id,5,3,8)另外一點,yii框架中想實行對某個字段進行特殊排序,除了order by field還有別的方法嗎,查了好幾種都是由於“` ”此符號導致的錯誤
人生最曼妙的风景,竟是内心的淡定与从容!
->orderBy(["FIELD(step, 'star', 'person', 'team')" => true]) 是可以的,但是我沒細看底層的程式碼。 。 。 不過應該可以解決問題
->orderBy(["FIELD(step, 'star', 'person', 'team')" => true])
/** * @param array $columns * @return string the ORDER BY clause built from [[Query::$orderBy]]. */ public function buildOrderBy($columns) { if (empty($columns)) { return ''; } $orders = []; foreach ($columns as $name => $direction) { if ($direction instanceof Expression) { $orders[] = $direction->expression; } else { $orders[] = $this->db->quoteColumnName($name) . ($direction === SORT_DESC ? ' DESC' : ''); } } return 'ORDER BY ' . implode(', ', $orders); }
這是產生orderby語句的方法,所以true沒有什麼實質的作用,但不等於 SORT_DESC 然後變成空了 ,
比較官方的寫法是這樣的:
orderBy([new Expression("FIELD(step, 'star', 'person', 'team')")])
->orderBy(["FIELD(step, 'star', 'person', 'team')" => true])
是可以的,但是我沒細看底層的程式碼。 。 。 不過應該可以解決問題這是產生orderby語句的方法,所以true沒有什麼實質的作用,但不等於 SORT_DESC 然後變成空了 ,
比較官方的寫法是這樣的: