2010-08-03 33 views
0
T1 

F1 F2 F3 F4 
a 2 2 NULL 
a 2 3 UK 

但我只想要結果是a 2 2,3 UK如果我做選擇如何合併2排在MySQL

如何實現這一目標?

我找出來的結果是:2 2,3英國和2,3是F3場

+1

如果第1行使用英國或美國而不是NULL,會發生什麼情況? – Mark 2010-08-03 08:56:21

回答

2

如果您想按F1和F2分組,並且在一個字符串中獲得F3的所有值,並用逗號分隔(這似乎是您要求的),那麼您將不得不使用GROUP_CONCAT

select F1, F2, GROUP_CONCAT(F3 ORDER BY F3) as F3, F4 from T1 group by F1, F2 

BTW請務必閱讀GROUP_CONCAT(見上面的鏈接)的文檔,因爲如果超過最大長度(默認情況下每1024個字符)這個字段將被截斷!你得到的F4的價值可能不是你期望的(因爲查詢使用了MySQL的許多煩人的「特性」之一)......如果F4包含兩行的UK,那麼它會更有意義,那麼你可以添加F4到分組by-clause。

1
select F1, F2, F3, F4 FROM T WHERE F4 is not null 
1

嘗試。

select * from T1 where (F4!='' or F4 is not Null) 
+0

這不是我期待的 – Tree 2010-08-03 08:43:20

1

U可以使用下面的查詢給出 -

select * from T1 where F4 is not null 

這是你在看什麼呢?