我有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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top