LINUX.ORG.RU

Сообщения outtaspace

 

Неконсистентность запроса с group by + order by + limit

Форум — Development

Столкнулся с необъяснимым поведением mysql 5.7 (разумеется под онтопиком).

В запросах нет хранимок, вьюшек, агрегатных функций и прочих сложностей. Таблица table_name статична, данные в ней не меняются. Запросы 1 и 2 отличаются только циферкой - лимитом, т.е. последим символом запроса.

Насколько я понимаю последовательность выполнения конкретного запроса (group by + order by + limit), mysql должен вычислить limit по уже отфильтрованным и отсортированным строкам. То есть при любом запросе вернет одинаковый результат - единственную строку подходящую под condition. Но практике это не так.

Запрос 1 использует лимит=1, возвращает 0 строк. Хотя запрос должен вернуть одну строку, таков condition и набор данных в таблице.

select
    tn.id
from
    table_name as tn
where
    condition
group by
    tn.id
order by
    tn.id
limit 1

Запрос 2 использует лимит=2, возвращает 1 строку. Именно одну строку этот запрос и должен извлечь, таков condition и набор данных в таблице.

select
    tn.id
from
    table_name as tn
where
    condition
group by
    tn.id
order by
    tn.id
limit 2

 , ,

outtaspace ()

Ищу работу: Perl, Киев.

Форум — Job

С 2007 года работаю в Perl-проектах: телеком, автоматизация тестирования, web, поисковики.

 

outtaspace ()

Angularjs, не обновляется view при обновлениях страницы.

Форум — Web-development

Страница загружается ajax'ом.

При первоначальной загрузке отрабатывает как надо (бутстрапится ангуляр, по таймауту обновляется сообщение внутри div'а).

Но если уйти в другой таб и вернуться, не генерится view: вместо сообщения (message из $scope) вижу placeholder:

{{message}}

Решил форсировать, через $scope.$apply(), но оно не работает как надо, сообщение в div'е не обновляется.

Как починить? Мб я где-то грубо ошибся?

<div id="hello" ng-controller="MyController">
message: {{message}}
</div>

<script>
angular.module('myApp', [])
    .controller('MyController', ['$scope', function($scope) {
        $scope.message = "Waiting 2000ms for update.";

        setTimeout(function () {
            $scope.$apply(function () {
                $scope.message = "Timeout called!";
            });
        }, 2000);
    }]);

angular.element(document).ready(function() {
    try {
        console.log('Bootstrap!');
        angular.bootstrap(document, ['myApp']);
    } catch(err) {
        console.log('Already bootstrapped!');

        var $scope = angular
            .element(document.getElementById('hello'))
            .scope();

        setTimeout(function () {
            $scope.$apply(function () {
                $scope.message = "Timeout called!";
            });
        }, 2000);
    }
});
</script>

 

outtaspace ()

Будни строителя капитализма

Галерея — Рабочие места

Условия для съемки были трудными, стол расположен близко к стене и очень плоха камера смартфона. В кадр не попали дешевое офисное кресло, и Sennheiser HD215 на фирменном headphone holder.

На столе:

узнаваемая клавиатура от M$;

радио-мышка от a4tech (G7 630);

новенький монитор LG IPS234;

игрушечная мышка сидящая на миниатюрном барабане;

головоломки (5х5х5, 3х3х3, мастер-пираморфикс, белоснежный кубик-альбинос который всегда собран);

кипа документов + блокноты + старое издание GoF;

кистевой эспандер в виде бублика + тыква из которой пью мате;

На экране:

няшный xubuntu 12.04;

GNU Screen в split-mode, в котором пускаю консольки на удаленном сервере (Debian) и vim;

В правом буфере «скрина» выхлоп системы которую единолично разрабатываю (soft-realtime управляющей огромной сетью). В правом Perl'овый код и иногда Erlang'овый.

>>> Просмотр (1920x2560, 469 Kb)

outtaspace ()

RSS подписка на новые темы