Sql quand tu nous tient

fdupriez Messages postés 11 Statut Membre -  
fdupriez Messages postés 11 Statut Membre -
Bonjour à tous, mon nouveau petit soucis et que je désire effectué un select dans une basse de donnée mais je veut que ma réponse se place dans un ordre précis
exemple : si je tape" bar" je veut les nom qui posséde "bar "uniquement , puis les nom qui commence par "bar" puis les nom qui finissent par "bar" et enfin les noms qui posséde bar au milieu sans reprendre evidament les nom déjà trouver

voilà un grand merci à tous ceus qui voudrons bien m'aider

3 réponses

  1. Tittom Messages postés 422 Statut Membre 128
     
    Bonjour,

    Je ferais quelque chose dans ce genre :

    SELECT ordre, colonne
      FROM (
            SELECT 10 as "Ordre", colonne
              FROM ma_table
             WHERE colonne = 'bar'
             UNION
            SELECT 20 as "Ordre", colonne
              FROM ma_table
             WHERE colonne like 'bar%'
             UNION
            SELECT 30 as "Ordre", colonne
              FROM ma_table
             WHERE colonne like '%bar'
             UNION
            SELECT 40 as "Ordre", colonne
              FROM ma_table
             WHERE colonne like '%bar%'
           )
     ORDER BY ordre
    


    (requête non testée, désolé)

    -- 
    Tittom (ça c'est de la signature)
    0
  2. fdupriez Messages postés 11 Statut Membre
     
    merci je vais tester et je te dis quoi
    0
  3. fdupriez Messages postés 11 Statut Membre
     
    ok j'ai tester sa marche avec une petite modif ci -joint

    SELECT *
    FROM (
    SELECT distinct 10 lig, design
    FROM d_article
    WHERE design = 'BAR'
    UNION
    SELECT distinct 20 lig, design
    FROM d_article
    WHERE design like 'BAR%' and design <> 'BAR'
    UNION
    SELECT distinct 30 lig, design
    FROM d_article
    WHERE design like '%BAR%' and design not like 'BAR%' and design <> 'BAR'
    )
    order by lig,design

    merci pour ton aide
    0