繁体   English   中英

MySQL分组依据不带列名

[英]MySQL group by without column name

我有一个包含用户信息的表。

mysql> desc accounts;
+-------------+------------+------+-----+---------+----------------+
| Field       | Type       | Null | Key | Default | Extra          |
+-------------+------------+------+-----+---------+----------------+
| cid         | int(11)    | NO   | PRI | NULL    | auto_increment |
| username    | text       | YES  |     | NULL    |                |
| password    | text       | YES  |     | NULL    |                |
| mysignature | text       | YES  |     | NULL    |                |
| is_admin    | varchar(5) | YES  |     | NULL    |                |
+-------------+------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)

普通的group by语句始终跟随一个或多个列名,如下所示:

select * from accounts group by cid;

只是一个示例,通常group by使用诸如sum()类的Aggregate函数。

我发现一些不符合我无法理解的列名的表达式:

mysql> select username from accounts group by now();
+----------+
| username |
+----------+
| admin    |
+----------+
1 row in set (0.00 sec)

我是MySQL的新手。 该查询如何工作? 谢谢。

实际上是表达。 它比较表达式结果而不是分组的列值。

now()与group by的功能不是很有效。

它将始终从所选数据中返回第一行。

您始终需要在查询的group by子句中指定列名。 这是分组依据的教程的链接 它指定可以与group by一起使用的聚合函数。

now()与group by return一起,它将从查询中选择数据并与第一行匹配,并且它将是第一行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM