zend-framework - Zend framework SQL select查询构造(ORDER BY)

标签 zend-framework mysql sql-order-by clause

我有一个包含 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

这主要是检查 url 长度是否大于零或为空。如果是,则它们处于排序的底部。

关于zend-framework - Zend framework SQL select查询构造(ORDER BY),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1914473/

相关文章:

php - 将更改写回 Zend Dom 查询对象

php - ZF语言与翻译

php - mysql保存用户名字符串类似时间戳的数据类型

mysql - 使用条件按两列排序?

MySQL:首先对每个出现的情况进行排序,然后对剩余的进行排序

PHP 变量范围和 "foreach"

php - 创建和更新 Zend_Search_Lucene 索引

php - 带有 AM 和 PM 的字符串在 php 中的日期格式

php - 获取分组字段的计数,但也需要计数为零的字段名称