2011-01-27 5 views
1

J'ai cette fonctionmysql renommer les résultats?

SELECT LEFT(eventName, INSTR(CONCAT(eventName, ':') , ':')) AS prefix, COUNT(*) 
FROM trackingevent 
GROUP BY LEFT(eventName, INSTR(CONCAT(eventName, ':') , ':')) 
UNION SELECT homeupload, COUNT(*) 
FROM link 
GROUP BY homeupload 
UNION 
SELECT mediaType, COUNT(*) 
FROM link 
GROUP BY mediaType 
UNION 
SELECT emailSub, COUNT(*) FROM link WHERE emailSub='1' GROUP BY emailSub 

et il génère quelque chose comme

prefix COUNT(*) 
CONTEST_ENTRY: 4 
EMAIL_SHARE  77 
FLICKR_SHARE 9 
SHARE_FACEBOOK 105 
SHARE_STATION_LOGIN  223 
TWEET_SHARE  18 
0 320 
1 1 
image 320 
video 1 
1 195 

Je veux renommer 0,1 et l'autre 1 à autre chose. Peut-être homeupload, sur site, ou quelque chose.

Le premier 0 et 1 sont UNION SELECT homeupload, COUNT (*) DE lien GROUP BY homeupload

Comme il y a deux valeurs

La seconde figure 1 est UNION SELECT emailSub, COUNT (*) FROM lien WHERE emailSub = '1' GROUP BY emailSub

Comment renommer les résultats?

Répondre

2

en bref, en utilisant IF

... 
UNION 
SELECT IF(homeupload = 0, 
      "someStringDescribingStatus0", 
      "someStringDescribingStatus1") as homeUploadStatus, 
     count(*) 
FROM ...