1

VARCHAR column を持つデータベースがありますurlurl任意の値を持つ行が他の行よりも優先されるように行をフェッチしたいのですが、date行ごとに (降順で)ORDER BY 'url' DESC, 'date' DESC並べ替えられるため、最初にアルファベット順に並べ替えられるため機能しません。基本的には、次のようになります。

テーブル:

ID   |    Url    | Date
1    | http://...| 1001
2    |           | 1002
3    |           | 1003
4    | http://...| 1005
5    | http://...| 1004

並べ替え:

ID   |    Url    | Date
4    | http://...| 1005
5    | http://...| 1004
1    | http://...| 1001
3    |           | 1003
2    |           | 1002

それを行うための適切な zend フレームワークの方法 (または少なくとも SQL クエリ) は何でしょうか?

4

2 に答える 2

2

SQLを使用すると、次のようなことができます...

URLフィールドにもnull値を許可すると、ちょっと見苦しくなります。

SELECT * , IF(LENGTH(url) = 0 OR url IS NULL, 1, 0) AS nourl 
FROM url ORDER BY nourl ASC

これは基本的に、URL の長さが 0 より大きいか、null かどうかを確認します。もしそうなら、それらはソートの一番下にあります。

于 2009-12-16T13:30:06.480 に答える
0

order by field('field_name', value) descselectステートメントで使用できます。

于 2010-05-12T15:17:33.040 に答える