2010-04-29 6 views
2

У меня есть таблица pgsql с идентификаторами полей, идентификатором, именем.Zendframework/PgSQL fetchAll orderby

id serial NOT NULL, 
    identifier character varying(16), 
    name character varying(128) 

Я хочу fetchAll значения из идентификатора таблицы OrderBy.

, но идентификатор, имеющие значения

12, 100, 200, 50 

и после $table->fetchAll(null, 'identifier'); дает результат

100, 12, 200, 50 

но я хочу результат как

12, 50, 100, 200 

или с помощью прямого запроса?

ответ

1

Я думаю, этот запрос будет работать для вас

select * from tablename order by tableField::int 
+0

также $ table-> fetchAll (нуль '(идентификатор :: Int)'); будет работать с zend tnx :) – viMaL

0

Попробуйте это:

$table->fetchAll(null, '(identifier+0)'); 

Операция +0 должна сделать PostgreSQL отливать значение идентификатора в целое число, так что сортирует численно вместо в алфавитном порядке.

Наличие круглых скобок должно дать Zend Framework ключ для обработки аргумента сортировки как выражения, а не имени столбца.