質問

私は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クエリ)になりますそれは何をするか?

役に立ちましたか?

解決

SQLで、あなたができるようなもののような...

あなたにもURLフィールドにnull値を許可する場合は、

これは醜いの種類を取得します。

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

これは、基本的には、URLの長さがゼロよりも大きいか、nullであるかどうかを確認します。その場合、彼らは一種の下部にあります。

他のヒント

あなたはselect文でorder by field('field_name', value) descを使用することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top