[英]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.