Cita: Ya sé que MySQL lo ordena automáticamente por relevancia pero necesito usar AS relevancia porque necesito ejecutar esa relevancia en primer lugar y en segundo lugar otras como se puede ver en el código.
¿Y para qué pones AS? Pon simplemente el alias.
Código SQL:
Ver original(SELECT *
FROM libros
WHERE keywords LIKE '%$busqueda%'
ORDER BY precio DESC, fecha ASC)
UNION
(SELECT *, (MATCH (keywords) AGAINST('$busqueda')) relevancia
FROM libros
WHERE MATCH(keywords) AGAINST('$busqueda')
ORDER BY relevancia DESC, ventas ASC, volumen DESC)
Eso, siempre que recuerdes que si o sí ambas consultas deben devolver la misma cantidad de campos, o de lo contrario generará un error de ejecución...