2

id、identifier、nameのフィールドを持つpgsqlテーブルがあります。

  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

私は、このクエリはあなたのために働くと思います

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 に答える