Zend Framework Построение SQL-запроса выбора (ORDER BY) - PullRequest
1 голос
/ 16 декабря 2009

У меня есть база данных со столбцом 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 Framework (или хотя бы SQL-запрос) для этого?

Ответы [ 2 ]

2 голосов
/ 16 декабря 2009

С SQL вы могли бы что-то вроде ...

Становится уродливым, если вы также разрешите пустые значения в поле url.

SELECT * , IF(LENGTH(url) = 0 OR url IS NULL, 1, 0) AS nourl 
FROM url ORDER BY nourl ASC

Это в основном проверяет, является ли длина URL-адреса больше нуля или равна нулю. Если они есть, они в нижней части сортировки.

0 голосов
/ 12 мая 2010

Вы можете использовать order by field('field_name', value) desc в операторе выбора.

...