2011-01-27 53 views
1

我有這個功能mysql重命名結果?

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 

,併產生類似

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 

我要重命名的0,1和另1到別的東西。也許homeupload,現場,或什麼的。

第一0和1是UNION SELECT homeupload,COUNT(*) FROM鏈路 GROUP BY homeupload

由於有兩個值

第二1是UNION SELECT emailSub,COUNT(* )FROM鏈接WHERE emailSub ='1'GROUP BY emailSub

如何重命名結果?

回答

2

總之,使用IF

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