2013-10-23 48 views
1

當我使用mysql我得到這個錯誤,請任何人都可以解釋我這個。 A,B,C之間有什麼不同?不同羣體之間()和羣組由

A) select * from table where a=a group by(b) // this execute & work fine 
B) select * from table where a=a group by b,c // this execute * work fine 

c) select * from table where a=a group by (b,c) // this is giving an error - error is operand should contain 1 column. 

在它正常工作與出與支架錯誤A,但是當我用同樣的方法用C多分組它不工作,並給出提到的錯誤。

這是爲什麼? ()& group by在mysql分組中有什麼不同?

謝謝。

回答

0

group by(b,c)表示您按字段「b,c」分組,因爲您使用「()」。

由B組,C意味着你組由字段B然後組通過的字段c

+0

沒有錯誤解釋「操作數應該包含1列」。這意味着如果我使用group by(b,c),這意味着mysql標識了b和c是兩列。但它說如果我使用(),它不能按兩列分組。那就是我的問題是,爲什麼發生這種情況? – maXfenda

0

這些是等效的:

group by (b), (c) 
group by b, c 

因爲括號內是多餘的(它們沒有影響),但在此:

group by (b, c) 

托架從表達b, c,這不是一個單一的值產生單個排序術語,並且order by方面必須是單值。