lasnoufle La seule et unique! | J'ai plutot l'impression que la demande c'est d'avoir tous les resultats de la premiere requete, tries entre eux, puis ceux de la seconde, tries entre eux.
Si c'est ca, dans la requete du premier poste, il suffit de changer le UNION (qui trie et enleve les lignes en double) en UNION ALL (qui se contente de tout mettre a la suite sans chercher a comprendre):
(SELECT numpage, titre FROM NEW_Pages WHERE titre LIKE '%machin%' ORDER BY titre)
UNION ALL
(SELECT numpage, titre FROM NEW_Pages WHERE contenu LIKE '%machin%' ORDER BY titre); |
Autre option, si on veut garder le UNION a tout prix:
SELECT numpage, titre
FROM (
(SELECT numpage, titre, 1 AS ordre FROM NEW_Pages WHERE titre LIKE '%machin%')
UNION ALL
(SELECT numpage, titre, 2 AS ordre FROM NEW_Pages WHERE contenu LIKE '%machin%'))
ORDER BY ordre, titre; |
EDIT: en fait non car je suppose qu'il faut quand meme virer les resultats doubles. Du coup un truc comme ca?
SELECT numpage, titre
FROM (
SELECT num_page, titre, MIN(ordre) AS ordre
FROM (
SELECT numpage, titre, 1 AS ordre FROM NEW_Pages WHERE titre LIKE '%machin%'
UNION ALL
SELECT numpage, titre, 2 AS ordre FROM NEW_Pages WHERE contenu LIKE '%machin%')
)
GROUP BY num_page, titre
)
ORDER BY ordre, titre); |
RE-EDIT: fix des parentheses  Message édité par lasnoufle le 18-07-2014 à 19:54:20 ---------------
C'était vraiment très intéressant.
|