webForumDet fria alternativet
Logga in / Bli medlem

Sortering

Databaser & SQL

3 svar · 470 visningar · startad av Gaski

Medlem sedan juni 2000310 inlägg
Trådstart#1

Har en sökning som nedan:

SELECT * FROM cwwl 
  WHERE active = '1' 
  AND (subject LIKE '%q%' 
    OR site LIKE '%q%' 
    OR assigned LIKE '%q%') 
  ORDER BY subject

Nu skulle jag vilja sortera så att alla som innehåller q i subject ska komma först, sedan ska alla site som innehåller det komma, osv...

Hur gör man det med mySQL?

Medlem sedan dec. 200012 464 inlägg
#2
SELECT * FROM cwwl 
  WHERE active = 1 
  AND (subject LIKE '%q%' 
    OR site LIKE '%q%' 
    OR assigned LIKE '%q%') 
  ORDER BY 
  case when subject like '%q% then 1
         when site like '%q% then 2
         else 3 end
Medlem sedan juni 2000310 inlägg
#3

Tack!

Medlem sedan juni 200032 967 inlägg
#4

Också var det där gamla vanliga, Hur markerar jag vilket svar som löste mitt problem?

265 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)