Посмотрите на этот пример:
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope,$http) {
var getJoke = function(){
return $http.get('http://api.icndb.com/jokes/random').then(function(res){
return res.data.value;
});
}
getJoke().then(function(res) {
console.log(res.joke);
});
});
Как вы можете видеть, getJoke
возвращает разрешенное обещание (оно разрешено при возврате res.data.value
). Таким образом, вы ждете, пока запрос $ http.get не будет завершен, а затем выполнится console.log (res.joke) (как обычный асинхронный поток).
Это plnkr:
Сортировка по умолчанию возрастает, вам нужно добавить ключевое слово DESC к обоим вашим заказам:
ORDER BY article_rating DESC, article_time DESC
ORDER BY article_rating ASC , article_time DESC
DESC
в конце будет сортироваться по обоим столбцам. Вы должны указать ASC
, если хотите это иначе
Ниже перечислены ваши данные в зависимости от обоих столбцов в порядке убывания.
ORDER BY article_rating DESC, article_time DESC
Это может помочь кому-то, кто ищет способ сортировать таблицу по двум столбцам, но парализованно. Это означает объединение двух видов с использованием функции сортировки агрегатов. Это очень полезно, например, при поиске статей с использованием полнотекстового поиска, а также в отношении даты публикации статьи.
Это только пример, но если вы поймете эту идею, вы сможете найти множество совокупных функций для использования. Вы можете даже весовать столбцы, чтобы предпочесть один за секунду. Функция my принимает крайности из обоих видов, поэтому наиболее ценные строки находятся сверху.
Извините, если существуют более простые решения для выполнения этой работы, но я не нашел их.
SELECT
`id`,
`text`,
`date`
FROM
(
SELECT
k.`id`,
k.`text`,
k.`date`,
k.`match_order_id`,
@row := @row + 1 as `date_order_id`
FROM
(
SELECT
t.`id`,
t.`text`,
t.`date`,
@row := @row + 1 as `match_order_id`
FROM
(
SELECT
`art_id` AS `id`,
`text` AS `text`,
`date` AS `date`,
MATCH (`text`) AGAINST (:string) AS `match`
FROM int_art_fulltext
WHERE MATCH (`text`) AGAINST (:string IN BOOLEAN MODE)
LIMIT 0,101
) t,
(
SELECT @row := 0
) r
ORDER BY `match` DESC
) k,
(
SELECT @row := 0
) l
ORDER BY k.`date` DESC
) s
ORDER BY (1/`match_order_id`+1/`date_order_id`) DESC
ORDER BY article_rating, article_time DESC
сортирует файл article_time только в том случае, если есть две статьи с одинаковым рейтингом. Из всего, что я вижу в вашем примере, это именно то, что происходит.
↓ primary sort secondary sort ↓
1. 50 | This article rocks | Feb 4, 2009 3.
2. 35 | This article is pretty good | Feb 1, 2009 2.
3. 5 | This Article isn't so hot | Jan 25, 2009 1.
, но рассмотрим:
↓ primary sort secondary sort ↓
1. 50 | This article rocks | Feb 2, 2009 3.
1. 50 | This article rocks, too | Feb 4, 2009 4.
2. 35 | This article is pretty good | Feb 1, 2009 2.
3. 5 | This Article isn't so hot | Jan 25, 2009 1.