ZendのフレームワークSQL SELECTクエリの構築(ORDER BY)
-
19-09-2019 - |
質問
私は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
を使用することができます。
所属していません StackOverflow