2012-09-16 92 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不知道 –