[gull] UNION avec MySQL

Martial Guex m.guex at mutech.ch
Sun Jun 29 14:42:16 CEST 2003


Je suppose que tu désire recevoir de la requête en premier les enregistrements 
aillant le champ period >= '".date("md") dans l'ordre chronologique puis les 
autres le même ordre, autrement j'ai pas compris le but.

Une solution et de passé par un champ calculé représentant la comparaison des 
champs de période.

SELECT * FROM planning_hebergement ORDER BY STR_CMP(period, '".date("md")."%') 
DESC, period ASC

Avec une solution de ce genre tu ne peu pas par contre trier les 
enregistrements comme tu le ferai avec:

(SELECT * FROM planning_hebergement WHERE period >= '".date("md")."%' ORDER
BY period ASC)
UNION
(SELECT * FROM planning_hebergement WHERE period < '".date("md")."%' ORDER
BY period DESC);

A+
Martial

On Sunday 29 June 2003 13:57, Pascal Perez - LHA wrote:
> Bonjour,
>
> J'ai MySQL 3.23 et j'aimerai réaliser la requête :
>
> (SELECT * FROM planning_hebergement WHERE period >= '".date("md")."%' ORDER
> BY period ASC)
> UNION
> (SELECT * FROM planning_hebergement WHERE period < '".date("md")."%' ORDER
> BY period ASC);
>
> où le champ period est de type varchar avec une date sauvegardée au format
> mmjj. Le problème est que la fonction UNION est apparue dans MySQL
> seulement à la version 4. Cependant je suis sur qu'une autre solution est
> possible.... j'ai déjà fait pas mal de recherche notamment dans des
> bouquins et sur le site de MySQL.
>
> Toute aide bienvenue,
>
> Pascal Perez
>
> _______________________________________________
> gull mailing list
> gull at lists.alphanet.ch
> http://lists.alphanet.ch/mailman/listinfo/gull

-- 
MuTECH, Martial Guex
Rue des Alpes 3
1452 Les Rasses
Switzerland
Phone:+41 (24) 454 46 35
Fax:+41 (24) 454 46 32
Email: m.guex at mutech.ch




More information about the gull mailing list