Domanda

Ho un database con VARCHAR colonna url. Vorrei recuperare righe in modo che quelli che hanno un valore url hanno priorità sugli altri righe, ma sono ordinate in fila date (discendente), quindi ORDER BY 'url' DESC, 'date' DESC non funzionerebbe come li ordinare alfabeticamente prima. In sostanza, sarebbe simile a questa:

Tabella:

ID   |    Url    | Date
1    | http://...| 1001
2    |           | 1002
3    |           | 1003
4    | http://...| 1005
5    | http://...| 1004

Ordinato:

ID   |    Url    | Date
4    | http://...| 1005
5    | http://...| 1004
1    | http://...| 1001
3    |           | 1003
2    |           | 1002

Quale sarebbe il modo corretto quadro Zend (o almeno query SQL) per farlo?

È stato utile?

Soluzione

Con SQL, si potrebbe quindi qualcosa di simile ...

Si ottiene tipo di brutto se si consente valori nulli sul campo URL, nonche.

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

Questa verifica fondamentalmente per vedere se la lunghezza url è maggiore di zero o è nullo. Se lo sono, sono alla base del genere.

Altri suggerimenti

Si potrebbe utilizzare order by field('field_name', value) desc nell'istruzione SELECT.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top