2

我有一个 pgsql 表,其中包含字段 id、标识符、名称。

  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

或使用直接查询?

4

2 回答 2

1

I think, this query will work for you

select * from tablename order by tableField::int
于 2010-04-29T10:15:18.420 回答
0

尝试这个:

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

+0操作应该使 PostgreSQL 将标识符值转换为整数,因此它按数字而不是字母顺序排序。

括号的存在应该给 Zend Framework 一个线索,将排序参数视为一个表达式,而不是一个列名。

于 2010-04-29T07:04:29.900 回答