@Anton2022
...

Как с помощью запроса xPDO newQuery сортировать вывод по числовому значению «binary»?

Делаю выборку чисел, но с сортировкой типа "order by binary value" никак не выходит.. Знаю, что можно сделать через pdoResources, но не хочется, так как много кода уже написано и лишь в нескольких запросах нужна сортировка по числу.
Что нужно добавить в этот код?
$q = $modx->newQuery('modTemplateVarResource');
            $q->where(array('tmplvarid' => 17));
            $q->select(array('value'));
            $q->query['distinct'] = 'DISTINCT';
            $q->sortby('value');
            $q->prepare();
            if($q->stmt && $q->stmt->execute())    $res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);

Заранее спасибо!
  • Вопрос задан
  • 437 просмотров
Пригласить эксперта
Ответы на вопрос 1
DarkRaven
@DarkRaven
разработка программного обеспечения
А почему вы не сделаете вот так?
<?php

$paramArray = array(
    ':parent' => 17 //Вот от такой магии лучше тоже избавиться
);
$sql = 'SELECT DISTINCT  `x`.value FROM '.$modx->getTableName('modTemplateVarResource').' AS `x` 
WHERE  `x`.`tmplvarid` = :parent
order by BINARY  `x`.`value` ASC';

$query = $modx->prepare($sql);

$modx->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

try
{
    $query->execute($paramArray);
    return $query->fetchAll(PDO::FETCH_ASSOC);
}
catch (PDOException $e) {
  echo 'error occurred! ' . $e->getMessage() . '<br>';
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы