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