[英]MYSQL Select Case when query
我正在嘗試執行下面的mysql查詢,看不到我在做什么錯,我希望查詢的WHEN PART可以得到結果,而我可以從ELSE PART那里得到結果。
SELECT
CASE
WHEN `club_name` = '7' THEN (
SELECT group_concat(DISTINCT mobile) from member WHERE `club_name` = '7'
)
ELSE (SELECT group_concat(mobile) from member)
END AS mobile
FROM member
提前致謝。
我相信這是一種被mysqls擴展燒毀到group by語句的情況 :
選擇列表可以引用未在GROUP BY子句中命名的非聚合列
...服務器可以從每個組中自由選擇任何值,因此,除非它們相同,否則選擇的值是不確定的。 ...
SELECT
CASE
WHEN `club_name` = '7' THEN (
SELECT group_concat(DISTINCT mobile) from member WHERE `club_name` = '7'
)
ELSE (SELECT group_concat(mobile) from member)
END AS mobile
FROM member
GROUP BY mobile
WITH GROUP BY返回(我相信這是您的追求)
MOBILE
abc,def,def,xyz,xyz,xyz,lmn
abc,def,def,xyz,xyz,xyz,lmn
xyz,lmn
abc,def,def,xyz,xyz,xyz,lmn
沒有分組依據:
MOBILE
abc,def,def,xyz,xyz,xyz,lmn
abc,def,def,xyz,xyz,xyz,lmn
abc,def,def,xyz,xyz,xyz,lmn
abc,def,def,xyz,xyz,xyz,lmn
xyz,lmn
xyz,lmn
xyz,lmn
只返回1行...
SELECT
CASE
WHEN `club_name` = '7' THEN (
SELECT group_concat(DISTINCT mobile) from member WHERE `club_name` = '7'
)
ELSE (SELECT group_concat(mobile) from member)
END AS mobile
FROM member
WHERE `club_name` = '7'
GROUP BY mobile
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.