Analicemos tu query
Código MySQL:
Ver originalSELECT fech_fechevnt
,desc_fechevnt
,tit_fechevnt
(SELECT fech_fechevnt
,desc_fechevnt
,tit_fechevnt
Es equivalente a
y a
El primer select da los registros donde fech_fechevnt es anterior a ahora y el segundo los que es posterior a ahora luego son todos los registros distintos a ahora. No? Practicamente todos, puesto que NOW() es DATETIME con lo que dificilmente tendras un registro en el mismo segundo.
El analizador de querys del motor MySQL que no es tonto busca la query mas sencilla ...
No se que quieres conseguir con el UNION, en qualquier caso la unica forma de ordenar un UNION es la que te ha dicho
jurena.
Si lo que quieres es ordenar de forma distinta un select y otro debes trabajarlos por separado, no se con que estas trabajando pero por ejemplo en php podrias lanzar el primero
SELECT fech_fechevnt,desc_fechevnt,tit_fechevnt
FROM ust_fechevent
WHERE fech_fechevnt>NOW())
ORDER BY fech_fechevnt
ASC;
y lo cargas en un array.
Luego ejecutas el segundo
SELECT fech_fechevnt,desc_fechevnt,tit_fechevnt
FROM ust_fechevent
WHERE fech_fechevnt<NOW())
ORDER BY fech_fechevnt
DESC;
y lo cargas en
el mismo array. (array_push)
Finalmente recorres el array para generar la lista de salida.
En $listado tines los registros en el orden que querias....