2012-09-16 88 views
-1

我有以下表SELECT DISTINCT *錯誤的MySQL

mysql> select * from abc; 
+---+------+------+ 
| A | B | C | 
+---+------+------+ 
| 2 | 2 | 2 | 
| 1 | 2 | 3 | 
| 3 | 3 | 2 | 
| 4 | 3 | 3 | 
+---+------+------+ 
4 rows in set (0.00 sec) 



mysql> select count(distinct *) 
    -> from abc 
    -> group by a; 
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that 
corresponds to your MySQL server version for the right syntax to use near '*) 
from abc 
group by a' at line 1 

任何人都可以讓知道的上述查詢正確的語法?

+0

* what * query的正確語法?你之後有什麼結果?也許你只是想用'B,C'替換'*' - 但是你想實現的模糊不清。 – eggyal

+0

@eggyal我想獲得表中的記錄數。 –

+0

當然,你正在努力做的不僅僅是這些,否則你就不會有'獨特'和'被a'分組? – eggyal

回答

1

對於DISTINCT您需要提供一個可供使用的列DISTINCT

因此,舉例來說,你的情況:SELECT DISTINCT(a) FROM abc

您希望計算表中的行,基於一個獨特的價值?

SELECT COUNT (DISTINCT a) FROM abc 

沒有必要爲GROUP BY作爲DISTINCT已經採取的照顧。

+0

確定,所以mysql不支持截然不同的* –

+0

@Santosh VM:'DISTINCT *'沒有任何意義,DBMS不支持它 – zerkms

+0

@zerkms ok學習mysql和數據庫so不知道 –