Zend Framework的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字段为空值,以及它得到那种难看。
SELECT * , IF(LENGTH(url) = 0 OR url IS NULL, 1, 0) AS nourl
FROM url ORDER BY nourl ASC
这基本上检查是否链接长度大于零或为空。如果是这样,它们在排序的底部。
其他提示
您可以在select语句中使用order by field('field_name', value) desc
。
不隶属于 StackOverflow