group by二三事

来源:互联网 发布:mac os 下安装win8 编辑:程序博客网 时间:2024/05/21 00:46

最近项目中遇到两个诡异的问题,直接上代码


CREATE TABLE t_user (
  id varchar(20) NOT NULL,
  username varchar(20) DEFAULT NULL,
  password varchar(20) DEFAULT NULL,
  address varchar(20) DEFAULT NULL,
  PRIMARY KEY (id)


INSERT INTO t_user (id, username, password, address) VALUES('1', 'name1', 'psw1', 'beijing');
INSERT INTO t_user (id, username, password, address) VALUES('2', 'name1', 'psw2', 'beijing');
INSERT INTO t_user (id, username, password, address) VALUES('3', 'name3', 'psw3', 'hainan');
INSERT INTO t_user (id, username, password, address) VALUES('4', 'name1', 'name1', 'hainan');


select t.* from t_user t group by t.address,1;

select t.username, t.address from t_user t group by t.address,1;

select t.username, t.address from t_user t group by t.address,null;(不能写null)


当group by分组的时候,如果需要一些无用字段占用,就写1。但是写其他的都不行,不写也不行,因为有多余的逗号。此时,select列可以写其他的都可以。(注意,仅验证mysql和postgres)

0 0