2012-04-04 177 views
3

我只是想知道這可能是MYSQL GROUP_CONCAT返回這種類型的數據的功能。這裏有一個場景mysql group_concat問題

SELECT GROUP_CONCAT(marks) AS `i need only 40 int in this column` FROM marks 

當我執行此查詢結果會顯示這樣的

enter image description here

結果所需40

+0

40? 5個值的平均值? – 2012-04-04 12:23:28

+0

不,我只需要40沒有5的平均值@SalmanA – 2012-04-04 12:25:06

+4

爲什麼只有40個?解釋 – 2012-04-04 12:25:07

回答

2

試試這個:

select group_concat(m.marks) from 
    (select distinct marks from marks limit 40) m 
+0

我不確定我是否能正確理解你的問題,但...... :-) – 2012-04-04 12:26:39

+0

'LIMIT 40'?你不是指'WHERE marks = 40'嗎? – knittl 2012-04-04 12:27:21

+0

@ knittl:我不知道。對我來說,OP似乎只需要** 40個整數**,而不是**只有整數40 **。但正如我在之前的評論中所說的:不知道OP是否想要正確理解。 – 2012-04-04 12:28:24

1

諮詢第一:規範你的數據庫表一個字段應該只包含一個值。現在

,爲您的具體問題的解決方案:MySQL的有FIND_IN_SET功能,應該做你想要什麼:

SELECT marks 
FROM marks 
WHERE FIND_IN_SET('40', marks) 
+0

Thanx分享你的經驗,但不是我的問題 – 2012-04-04 13:00:05

+0

@Samad:那麼你的問題到底是什麼? – knittl 2012-04-04 13:15:31

+0

我還是不明白。當與GROUP BY組合使用時,GROUP_CONCAT會創建一個由多行組成的單個字符串。 »[...]要從逗號分隔的字段中挑選一個元素«←哪個元素?第一?中間?持續?匹配一定的標準? – knittl 2012-04-04 13:37:50

0

你的語法

SELECT GROUP_CONCAT(marks) AS `i need only 40 int in this column` FROM marks 

工作正常。您正在給GROUP_CONCAT(marks)命名爲 i need only 40 int in this column,因此它通過語法顯示了您的意思。

「結果需要40」

這是什麼意思,當你使用GROUP_CONCAT並且要記錄下這些標記是40?爲什麼不使用查詢像

select * from table_name where marks='40' 

如果GROUP_CONCAT是compultion,然後用

SELECT GROUP_CONCAT(marks) AS `i need only 40 int in this column` FROM marks where marks='40' 
+0

我解釋我的問題,之所以採用這種甲 – 2012-04-04 12:57:58

+0

我已經提到過我的問題是這樣的可能與否,如果可能的話怎麼 – 2012-04-04 12:59:14

+0

查詢是否正常工作是什麼就得了,有啥問題到了IM ?意味着你想表現出什麼。 – 2012-04-04 12:59:26