1


1

ZendフレームワークのSQL選択クエリの構築(ORDER BY)

VARCHARカラム `url`を持つデータベースがあります。 「url」値を持つ行が他の行よりも優先されるように行をフェッチしたいが、「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クエリ)は何ですか?

2 Answer


2


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

urlフィールドでもnull値を許可すると、見苦しくなります。

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

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


0


selectステートメントで `order by field( 'field_name'、value)desc`を使用できます。