Sql quand tu nous tient
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
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
-
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) -
merci je vais tester et je te dis quoi
-
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