Cita:
Iniciado por gnzsoloyo ¿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...
La segunda consulta crea una columna virtual llamada relevancia en la que se muestra la cifra de relevancia que la primera no tiene ¿Puede ser ese el fallo?
Por otro lado quiero aclarar que el primer SELECT en el UNION está puesto en primer lugar con la intención de que esos resultados salgan primero.