Mysql COMMANDE, EN utilisant les données de date ligne

J'ai une requête à quelque chose comme ceci:

SELECT 
 title, desc, date 
FROM 
 tablename 
ORDER BY 
 date ASC, title ASC;

Fonctionne bien lorsque les données effectivement a une date. Question est, la date de soumission est facultative, de sorte que parfois, j'ai des 0000-00-00 comme une date, qui a malheureusement pour effet de placer tous les nondated lignes sur le dessus.

Donc, j'ai ensuite essayé ceci:

SELECT 
 title, desc, date 
FROM 
 tablename 
ORDER BY 
 date DESC, title ASC;

Qui fonctionne, mais pas vraiment, tous les articles avec les dates (non 0000-00-00) obtenir énumérés dans l'ordre décroissant, suivie par tous les articles avec le 0000-00-00.

Ce que je veux faire est d'ordre par date de l'ASC, le titre de l'ASC, mais seulement si la date != 0000-00-00, mais si la date est = 0000-00-00, puis il suffit de COMMANDER PAR le titre de l'ASC (et je pense que j'ai expliqué que correctement).

La seule façon que je peux penser pour ce faire sont non-SQL (soit 2 requêtes, ou, chaque requête remplit un en mémoire le tableau, puis-je trier à l'aide de PHP).

Est-il une requête SQL qui peut faire cela?

N'MySQL supporte pas les dates NULLES?

OriginalL'auteur OneNerd | 2009-05-19