查询数据语句:WHERE

创建表格例子

  1. 这里我们首先创建5 个表格,代码就不详细写了
    – 管理员表在这里插入代码片
CREATE TABLE cms_admin(
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL UNIQUE,
password CHAR(32) NOT NULL,
email VARCHAR(50) NOT NULL DEFAULT 'admin@qq.com',
role ENUM('普通管理员','超级管理员') DEFAULT '普通管理员'
);
INSERT cms_admin(username,password,email,role) VALUES('admin','admin','admin@qq.com',2);

INSERT cms_admin(username,password) VALUES('king','king'),

('麦子','maizi'),

('queen','queen'),

('test','test');

– 新闻分类表

CREATE TABLE cms_cate(
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
cateName VARCHAR(50) NOT NULL UNIQUE,
cateDesc VARCHAR(200) NOT NULL DEFAULT ''
);

INSERT cms_cate(cateName,cateDesc) VALUES('国内新闻','聚焦当今最热的国内新闻'),
('国际新闻','聚焦当今最热的国际新闻'),
('体育新闻','聚焦当今最热的体育新闻'),
('军事新闻','聚焦当今最热的军事新闻'),
('教育新闻','聚焦当今最热的教育新闻');

– 新闻表

CREATE TABLE cms_news(
id INT UNSIGNED AUTO_INCREMENT KEY,
title VARCHAR(50) NOT NULL UNIQUE,
content TEXT,
clickNum INT UNSIGNED DEFAULT 0,
pubTime INT UNSIGNED,
cId TINYINT UNSIGNED NOT NULL COMMENT '新闻所属分类,对应分类表中的id',
aId TINYINT UNSIGNED NOT NULL COMMENT '哪个管理员发布的,对应管理员表中的id'
);
INSERT cms_news(title,content,pubTime,cId,aId) VALUES('亚航客机失联搜救尚无线索 未发求救信号','马来西亚亚洲航空公司一架搭载155名乘客的客机28日早晨从印度尼西亚飞往新加坡途中与空中交通控制塔台失去联系,下落不明。',1419818808,1,2),
('北京新开通四条地铁线路 迎接首位客人','12月28日凌晨,随着北京地铁6号线二期、7号线、15号线西段、14号线东段的开通试运营,北京的轨道交通运营里程将再添62公里,共计达到527公里。当日凌晨5时许,北京地铁7号线瓷器口换乘站迎来新线开通的第一位乘客。',1419818108,2,1),
('考研多次出现讲话内容','新京报讯 (记者许路阳 (微博))APEC依法治国……昨日,全国硕士研究生招生考试进行首日初试,其中,思想考题多次提及时事热点,并且多次出现不同场合的讲话内容。',1419818208,3,2),
('深度-曾雪麟:佩兰别重蹈卡马乔覆辙','12月25日是前国足主帅曾雪麟的85岁大寿,恰逢圣诞节,患有尿毒症老爷子带着圣诞帽度过了自己的生日。此前,腾讯记者曾专访曾雪麟,尽管已经退休多年,但老爷子仍旧关心着中国足球,为国足揪心,对于国足近几位的教练,他只欣赏高洪波。对即将征战亚洲杯的国足,老爷子希望佩兰不要重蹈卡马乔的覆辙',1419818308,2,4),
('国产JAD-1手枪枪架投入使用 手枪可变"冲锋枪"','日前,JAD-1型多功能手枪枪架通过公安部特种警用装备质量监督检验中心检验,正式投入生产使用。此款多功能枪架由京安盾(北京)警用装备有限公司开发研制,期间经广东省江门市公安特警支队试用,获得好评。',1419818408,4,4),
('麦子学院荣获新浪教育大奖','麦子学院最大的职业IT教育平台,获奖了',1419818508,1,5),
('麦子学院荣获腾讯教育大奖','麦子学院最大的职业IT教育平台,获奖了',1419818608,1,5),
('麦子学院新课上线','麦子学院PHP课程马上上线了,小伙伴快来报名学习哈',1419818708,1,5);

– 用户表

CREATE TABLE cms_user(
id INT UNSIGNED AUTO_INCREMENT KEY,
username VARCHAR(20) NOT NULL UNIQUE,
password CHAR(32) NOT NULL,
email VARCHAR(50) NOT NULL DEFAULT 'user@qq.com',
regTime INT UNSIGNED NOT NULL,
face VARCHAR(100) NOT NULL DEFAULT 'user.jpg',
proId TINYINT UNSIGNED NOT NULL COMMENT '用户所属省份'
);

INSERT cms_user(username,password,regTime,proId)

VALUES('张三','zhangsan',1419811708,1),
('张三丰','zhangsanfeng',1419812708,2),
('章子怡','zhangsan',1419813708,3),
('long','long',1419814708,4),
('ring','ring',1419815708,2),
('queen','queen',1419861708,3),
('king','king',1419817708,5),
('blek','blek',1419818708,1),
('rose','rose',1419821708,2),
('lily','lily',1419831708,2),
('john','john',1419841708,2);

– 用户省份表

CREATE TABLE provinces(
id TINYINT UNSIGNED AUTO_INCREMENT KEY,
proName VARCHAR(10) NOT NULL UNIQUE
);
INSERT provinces(proName) VALUES('北京'),
('上海'),
('深圳'),
('广州'),
('重庆');
  1. 接下来我们将用这五个表格做查询的例子
mysql> USE cms;
Database changed
mysql> SHOW TABLES;
+---------------+
| Tables_in_cms |
+---------------+
| cms_admin     |
| cms_cate      |
| cms_news      |
| cms_user      |
| provinces     |
+---------------+
5 rows in set (0.00 sec)

DQL查询记录

  1. SELECT select_expr[, select_expr…]
    [
    FROM table_references
    [WHERE 条件]
    [GROUP BY {col_name / position} [ASC/DEC],…分组]
    [HAVING 条件对分组结果进行二次筛选]
    [ORDER BY{ col_name/ position} [ASC/DEC],… 排序]
    [LIMIT 限制显示条数]
    ]

DQL 查询表达式:SELECT

  1. 简单的SELECT 语句
    – SELECT 语句会按照你查询的顺序显示
    – 至少要有一列
    – 查询管理员的编号名称及角色
mysql> SELECT id, username FROM cms_admin;
+----+----------+
| id | username |
+----+----------+
|  1 | admin    |
|  2 | king     |
|  4 | queen    |
|  5 | test     |
|  3 | 麦子     |
+----+----------+
5 rows in set (0.00 sec)
mysql> SELECT username,id, role FROM cms_admin;
+----------+----+-----------------+
| username | id | role            |
+----------+----+-----------------+
| admin    |  1 | 超级管理员      |
| king     |  2 | 普通管理员      |
| 麦子     |  3 | 普通管理员      |
| queen    |  4 | 普通管理员      |
| test     |  5 | 普通管理员      |
+----------+----+-----------------+
5 rows in set (0.00 sec)

– 在不打开数据库的情况下可以试用 database_name.tbl_name的形式打开

  1. 也可以使用tbl_name.fact_name的形式查询
mysql> SELECT cms_admin.id, cms_admin.username FROM cms_admin;
+----+----------+
| id | username |
+----+----------+
|  1 | admin    |
|  2 | king     |
|  4 | queen    |
|  5 | test     |
|  3 | 麦子     |
+----+----------+
5 rows in set (0.00 sec)
  1. 这时候我们发现,表名太长太麻烦了,我们可以给表名起别名, 用AS
mysql> SELECT a.id, a.username,a.email, a.role FROM cms_admin as a;
+----+----------+--------------+-----------------+
| id | username | email        | role            |
+----+----------+--------------+-----------------+
|  1 | admin    | admin@qq.com | 超级管理员      |
|  2 | king     | admin@qq.com | 普通管理员      |
|  3 | 麦子     | admin@qq.com | 普通管理员      |
|  4 | queen    | admin@qq.com | 普通管理员      |
|  5 | test     | admin@qq.com | 普通管理员      |
+----+----------+--------------+-----------------+
5 rows in set (0.00 sec)
  1. 同时,我们也可以给字段起别名,这时候显示的就会是你起的别名
mysql> SELECT id AS "编号", username AS"用户名", role AS "职称" FROM cms_admin;

+--------+-----------+-----------------+
| 编号   | 用户名    | 职称            |
+--------+-----------+-----------------+
|      1 | admin     | 超级管理员      |
|      2 | king      | 普通管理员      |
|      3 | 麦子      | 普通管理员      |
|      4 | queen     | 普通管理员      |
|      5 | test      | 普通管理员      |
+--------+-----------+-----------------+
5 rows in set (0.02 sec)
  1. 最后,我们也可以同时给字段与表格起别称
mysql> SELECT a.id AS "ID NUMBER", a.username AS "USERNAMES", a.role AS "ROLE NAMES" FROM cms_admin AS a;
+-----------+-----------+-----------------+
| ID NUMBER | USERNAMES | ROLE NAMES      |
+-----------+-----------+-----------------+
|         1 | admin     | 超级管理员      |
|         2 | king      | 普通管理员      |
|         3 | 麦子      | 普通管理员      |
|         4 | queen     | 普通管理员      |
|         5 | test      | 普通管理员      |
+-----------+-----------+-----------------+
5 rows in set (0.00 sec)

DQL 查询表达式:WHERE条件

  1. 比较:
    – =, <=, >=, !=, !>, !< <=>
    – 其中 **<=>**是值你在指定 NULL 的时候运用的符号
mysql> SELECT*FROM cms_user;
+----+-----------+--------------+-------------+------------+----------+-------+------+
| id | username  | password     | email       | regTime    | face     | proId | age  |
+----+-----------+--------------+-------------+------------+----------+-------+------+
|  1 | 张三      | zhangsan     | user@qq.com | 1419811708 | user.jpg |     1 |   18 |
|  2 | 张三丰    | zhangsanfeng | user@qq.com | 1419812708 | user.jpg |     2 |   18 |
|  3 | 章子怡    | zhangsan     | user@qq.com | 1419813708 | user.jpg |     3 |   18 |
|  4 | long      | long         | user@qq.com | 1419814708 | user.jpg |     4 |   18 |
|  5 | ring      | ring         | user@qq.com | 1419815708 | user.jpg |     2 |   18 |
|  6 | queen     | queen        | user@qq.com | 1419861708 | user.jpg |     3 |   18 |
|  7 | king      | king         | user@qq.com | 1419817708 | user.jpg |     5 |   18 |
|  8 | blek      | blek         | user@qq.com | 1419818708 | user.jpg |     1 |   18 |
|  9 | rose      | rose         | user@qq.com | 1419821708 | user.jpg |     2 |   18 |
| 10 | lily      | lily         | user@qq.com | 1419831708 | user.jpg |     2 |   18 |
| 11 | john      | john         | user@qq.com | 1419841708 | user.jpg |     2 |   18 |
| 12 | test1     | test1        | user@qq.com | 1419811708 | user.jpg |     1 | NULL |
+----+-----------+--------------+-------------+------------+----------+-------+------+
12 rows in set (0.00 sec)

mysql> SELECT* FROM cms_user WHERE id <= 5;
+----+-----------+--------------+-------------+------------+----------+-------+------+
| id | username  | password     | email       | regTime    | face     | proId | age  |
+----+-----------+--------------+-------------+------------+----------+-------+------+
|  1 | 张三      | zhangsan     | user@qq.com | 1419811708 | user.jpg |     1 |   18 |
|  2 | 张三丰    | zhangsanfeng | user@qq.com | 1419812708 | user.jpg |     2 |   18 |
|  3 | 章子怡    | zhangsan     | user@qq.com | 1419813708 | user.jpg |     3 |   18 |
|  4 | long      | long         | user@qq.com | 1419814708 | user.jpg |     4 |   18 |
|  5 | ring      | ring         | user@qq.com | 1419815708 | user.jpg |     2 |   18 |
+----+-----------+--------------+-------------+------------+----------+-------+------+
5 rows in set (0.00 sec)

mysql> SELECT*FROM cms_user WHERE id>=7;
+----+----------+----------+-------------+------------+----------+-------+------+
| id | username | password | email       | regTime    | face     | proId | age  |
+----+----------+----------+-------------+------------+----------+-------+------+
|  7 | king     | king     | user@qq.com | 1419817708 | user.jpg |     5 |   18 |
|  8 | blek     | blek     | user@qq.com | 1419818708 | user.jpg |     1 |   18 |
|  9 | rose     | rose     | user@qq.com | 1419821708 | user.jpg |     2 |   18 |
| 10 | lily     | lily     | user@qq.com | 1419831708 | user.jpg |     2 |   18 |
| 11 | john     | john     | user@qq.com | 1419841708 | user.jpg |     2 |   18 |
| 12 | test1    | test1    | user@qq.com | 1419811708 | user.jpg |     1 | NULL |
+----+----------+----------+-------------+------------+----------+-------+------+
6 rows in set (0.00 sec)

mysql> SELECT*FROM cms_user WHERE id!=1;
+----+-----------+--------------+-------------+------------+----------+-------+------+
| id | username  | password     | email       | regTime    | face     | proId | age  |
+----+-----------+--------------+-------------+------------+----------+-------+------+
|  2 | 张三丰    | zhangsanfeng | user@qq.com | 1419812708 | user.jpg |     2 |   18 |
|  3 | 章子怡    | zhangsan     | user@qq.com | 1419813708 | user.jpg |     3 |   18 |
|  4 | long      | long         | user@qq.com | 1419814708 | user.jpg |     4 |   18 |
|  5 | ring      | ring         | user@qq.com | 1419815708 | user.jpg |     2 |   18 |
|  6 | queen     | queen        | user@qq.com | 1419861708 | user.jpg |     3 |   18 |
|  7 | king      | king         | user@qq.com | 1419817708 | user.jpg |     5 |   18 |
|  8 | blek      | blek         | user@qq.com | 1419818708 | user.jpg |     1 |   18 |
|  9 | rose      | rose         | user@qq.com | 1419821708 | user.jpg |     2 |   18 |
| 10 | lily      | lily         | user@qq.com | 1419831708 | user.jpg |     2 |   18 |
| 11 | john      | john         | user@qq.com | 1419841708 | user.jpg |     2 |   18 |
| 12 | test1     | test1        | user@qq.com | 1419811708 | user.jpg |     1 | NULL |
+----+-----------+--------------+-------------+------------+----------+-------+------+
11 rows in set (0.00 sec)

mysql> SELECT*FROM cms_user WHERE id<=>NULL;
Empty set (0.00 sec)

mysql> SELECT*FROM cms_user WHERE age <=> NULL;
+----+----------+----------+-------------+------------+----------+-------+------+
| id | username | password | email       | regTime    | face     | proId | age  |
+----+----------+----------+-------------+------------+----------+-------+------+
| 12 | test1    | test1    | user@qq.com | 1419811708 | user.jpg |     1 | NULL |
+----+----------+----------+-------------+------------+----------+-------+------+
1 row in set (0.00 sec)
  1. 指定范围
    – BETWEEN AND , NOT BETWEEN AND
    – 指定范围比如3-10 之间的 是指 3<=, >=10,包括3,和10
    – NOT BETWEEN ADD 则是取反

  1. 指定集合
    – IN, NOT IN
    – 查询值在某个集合中出现,这是一个固定的值,比如查询编号为1,3,5,7,9,11,13,100的用户
mysql> SELECT*FROM cms_user WHERE id in (1,3,5,7,9,10,123,1000);
+----+-----------+----------+-------------+------------+----------+-------+------+
| id | username  | password | email       | regTime    | face     | proId | age  |
+----+-----------+----------+-------------+------------+----------+-------+------+
|  1 | 张三      | zhangsan | user@qq.com | 1419811708 | user.jpg |     1 |   18 |
|  3 | 章子怡    | zhangsan | user@qq.com | 1419813708 | user.jpg |     3 |   18 |
|  5 | ring      | ring     | user@qq.com | 1419815708 | user.jpg |     2 |   18 |
|  7 | king      | king     | user@qq.com | 1419817708 | user.jpg |     5 |   18 |
|  9 | rose      | rose     | user@qq.com | 1419821708 | user.jpg |     2 |   18 |
| 10 | lily      | lily     | user@qq.com | 1419831708 | user.jpg |     2 |   18 |
+----+-----------+----------+-------------+------------+----------+-------+------+
6 rows in set (0.00 sec)
mysql> SELECT*FROM cms_user WHERE id NOT IN (1,3,5,7,9,10,123,1000);
+----+-----------+--------------+-------------+------------+----------+-------+------+
| id | username  | password     | email       | regTime    | face     | proId | age  |
+----+-----------+--------------+-------------+------------+----------+-------+------+
|  2 | 张三丰    | zhangsanfeng | user@qq.com | 1419812708 | user.jpg |     2 |   18 |
|  4 | long      | long         | user@qq.com | 1419814708 | user.jpg |     4 |   18 |
|  6 | queen     | queen        | user@qq.com | 1419861708 | user.jpg |     3 |   18 |
|  8 | blek      | blek         | user@qq.com | 1419818708 | user.jpg |     1 |   18 |
| 11 | john      | john         | user@qq.com | 1419841708 | user.jpg |     2 |   18 |
| 12 | test1     | test1        | user@qq.com | 1419811708 | user.jpg |     1 | NULL |
+----+-----------+--------------+-------------+------------+----------+-------+------+
6 rows in set (0.00 sec)

– 除了数字,字符串也可以用集合的形式查询,在查询的时候大小写会被忽略

mysql> SELECT*FROM cms_user WHERE password in("zhangsan");
+----+-----------+----------+-------------+------------+----------+-------+------+
| id | username  | password | email       | regTime    | face     | proId | age  |
+----+-----------+----------+-------------+------------+----------+-------+------+
|  1 | 张三      | zhangsan | user@qq.com | 1419811708 | user.jpg |     1 |   18 |
|  3 | 章子怡    | zhangsan | user@qq.com | 1419813708 | user.jpg |     3 |   18 |
+----+-----------+----------+-------------+------------+----------+-------+------+
2 rows in set (0.00 sec)
  1. 模糊查询,字符匹配
  • LIKE, NOT LIKE
  • % 代表0 个或多个任意字符:
    – 比如这里我们要查询姓张的人
mysql> SELECT*FROM cms_user WHERE username LIKE "张%";
+----+-----------+--------------+-------------+------------+----------+-------+------+
| id | username  | password     | email       | regTime    | face     | proId | age  |
+----+-----------+--------------+-------------+------------+----------+-------+------+
|  1 | 张三      | zhangsan     | user@qq.com | 1419811708 | user.jpg |     1 |   18 |
|  2 | 张三丰    | zhangsanfeng | user@qq.com | 1419812708 | user.jpg |     2 |   18 |
+----+-----------+--------------+-------------+------------+----------+-------+------+
2 rows in set (0.00 sec)

再比如,我们想要查询用户名中包含“in”的用户

mysql> SELECT*FROM cms_user WHERE username LIKE "%in%";
+----+----------+----------+-------------+------------+----------+-------+------+
| id | username | password | email       | regTime    | face     | proId | age  |
+----+----------+----------+-------------+------------+----------+-------+------+
|  5 | ring     | ring     | user@qq.com | 1419815708 | user.jpg |     2 |   18 |
|  7 | king     | king     | user@qq.com | 1419817708 | user.jpg |     5 |   18 |
+----+----------+----------+-------------+------------+----------+-------+------+
2 rows in set (0.00 sec)
  • _代表1个任意字符:
    – 比如这里我们插入用户名为3位数和四位数的用户,使用三个和四个下划线
mysql> SELECT*FROM cms_user WHERE username LIKE "___";
+----+-----------+--------------+-------------+------------+----------+-------+------+
| id | username  | password     | email       | regTime    | face     | proId | age  |
+----+-----------+--------------+-------------+------------+----------+-------+------+
|  2 | 张三丰    | zhangsanfeng | user@qq.com | 1419812708 | user.jpg |     2 |   18 |
|  3 | 章子怡    | zhangsan     | user@qq.com | 1419813708 | user.jpg |     3 |   18 |
+----+-----------+--------------+-------------+------------+----------+-------+------+
2 rows in set (0.00 sec)

mysql> SELECT*FROM cms_user WHERE username LIKE "____";
+----+----------+----------+-------------+------------+----------+-------+------+
| id | username | password | email       | regTime    | face     | proId | age  |
+----+----------+----------+-------------+------------+----------+-------+------+
|  4 | long     | long     | user@qq.com | 1419814708 | user.jpg |     4 |   18 |
|  5 | ring     | ring     | user@qq.com | 1419815708 | user.jpg |     2 |   18 |
|  7 | king     | king     | user@qq.com | 1419817708 | user.jpg |     5 |   18 |
|  8 | blek     | blek     | user@qq.com | 1419818708 | user.jpg |     1 |   18 |
|  9 | rose     | rose     | user@qq.com | 1419821708 | user.jpg |     2 |   18 |
| 10 | lily     | lily     | user@qq.com | 1419831708 | user.jpg |     2 |   18 |
| 11 | john     | john     | user@qq.com | 1419841708 | user.jpg |     2 |   18 |
+----+----------+----------+-------------+------------+----------+-------+------+
7 rows in set (0.00 sec)

– 再比如这里我们查找用户名用一位数,第二位数是i并且之后数字不知道的用户

mysql> SELECT*FROM cms_user WHERE username LIKE "_i%";
+----+----------+----------+-------------+------------+----------+-------+------+
| id | username | password | email       | regTime    | face     | proId | age  |
+----+----------+----------+-------------+------------+----------+-------+------+
|  5 | ring     | ring     | user@qq.com | 1419815708 | user.jpg |     2 |   18 |
|  7 | king     | king     | user@qq.com | 1419817708 | user.jpg |     5 |   18 |
| 10 | lily     | lily     | user@qq.com | 1419831708 | user.jpg |     2 |   18 |
+----+----------+----------+-------------+------------+----------+-------+------+
3 rows in set (0.00 sec)

  1. 是否为空值
    – IS NULL, IS NOT NULL
mysql> SELECT*FROM cms_user WHERE age is NOT NULL;
+----+-----------+--------------+-------------+------------+----------+-------+------+
| id | username  | password     | email       | regTime    | face     | proId | age  |
+----+-----------+--------------+-------------+------------+----------+-------+------+
|  1 | 张三      | zhangsan     | user@qq.com | 1419811708 | user.jpg |     1 |   18 |
|  2 | 张三丰    | zhangsanfeng | user@qq.com | 1419812708 | user.jpg |     2 |   18 |
|  3 | 章子怡    | zhangsan     | user@qq.com | 1419813708 | user.jpg |     3 |   18 |
|  4 | long      | long         | user@qq.com | 1419814708 | user.jpg |     4 |   18 |
|  5 | ring      | ring         | user@qq.com | 1419815708 | user.jpg |     2 |   18 |
|  6 | queen     | queen        | user@qq.com | 1419861708 | user.jpg |     3 |   18 |
|  7 | king      | king         | user@qq.com | 1419817708 | user.jpg |     5 |   18 |
|  8 | blek      | blek         | user@qq.com | 1419818708 | user.jpg |     1 |   18 |
|  9 | rose      | rose         | user@qq.com | 1419821708 | user.jpg |     2 |   18 |
| 10 | lily      | lily         | user@qq.com | 1419831708 | user.jpg |     2 |   18 |
| 11 | john      | john         | user@qq.com | 1419841708 | user.jpg |     2 |   18 |
+----+-----------+--------------+-------------+------------+----------+-------+------+
11 rows in set (0.00 sec)
  1. 多个查询条件
    – AND, OR

DQL 查询语句操作:GROUP BY分组查询

  1. GROUP BY 只会显示分类表中第一条信息比如
mysql> SELECT*FROM cms_user;
+----+-----------+--------------+-------------+------------+----------+-------+------+---------+
| id | username  | password     | email       | regTime    | face     | proId | age  | sex     |
+----+-----------+--------------+-------------+------------+----------+-------+------+---------+
|  1 | 张三      | zhangsan     | user@qq.com | 1419811708 | user.jpg |     1 |   18 | male    |
|  2 | 张三丰    | zhangsanfeng | user@qq.com | 1419812708 | user.jpg |     2 |   18 | female  |
|  3 | 章子怡    | zhangsan     | user@qq.com | 1419813708 | user.jpg |     3 |   18 | male    |
|  4 | long      | long         | user@qq.com | 1419814708 | user.jpg |     4 |   18 | female  |
|  5 | ring      | ring         | user@qq.com | 1419815708 | user.jpg |     2 |   18 | male    |
|  6 | queen     | queen        | user@qq.com | 1419861708 | user.jpg |     3 |   18 | female  |
|  7 | king      | king         | user@qq.com | 1419817708 | user.jpg |     5 |   18 | male    |
|  8 | blek      | blek         | user@qq.com | 1419818708 | user.jpg |     1 |   18 | female  |
|  9 | rose      | rose         | user@qq.com | 1419821708 | user.jpg |     2 |   18 | male    |
| 10 | lily      | lily         | user@qq.com | 1419831708 | user.jpg |     2 |   18 | female  |
| 11 | john      | john         | user@qq.com | 1419841708 | user.jpg |     2 |   18 | unknown |
| 12 | test1     | test1        | user@qq.com | 1419811708 | user.jpg |     1 | NULL | unknown |
+----+-----------+--------------+-------------+------------+----------+-------+------+---------+
12 rows in set (0.00 sec)

mysql> SELECT*FROM cms_user GROUP BY proId;
+----+-----------+--------------+-------------+------------+----------+-------+------+--------+
| id | username  | password     | email       | regTime    | face     | proId | age  | sex    |
+----+-----------+--------------+-------------+------------+----------+-------+------+--------+
|  1 | 张三      | zhangsan     | user@qq.com | 1419811708 | user.jpg |     1 |   18 | male   |
|  2 | 张三丰    | zhangsanfeng | user@qq.com | 1419812708 | user.jpg |     2 |   18 | female |
|  3 | 章子怡    | zhangsan     | user@qq.com | 1419813708 | user.jpg |     3 |   18 | male   |
|  4 | long      | long         | user@qq.com | 1419814708 | user.jpg |     4 |   18 | female |
|  7 | king      | king         | user@qq.com | 1419817708 | user.jpg |     5 |   18 | male   |
+----+-----------+--------------+-------------+------------+----------+-------+------+--------+
5 rows in set (0.00 sec)

这里只显示了以proId显示的第一条信息

  1. GROUP BY 也可以按照位置来分组比如说性别是第 9 个字段
mysql> SELECT*FROM cms_user GROUP by 9;
+----+-----------+--------------+-------------+------------+----------+-------+------+---------+
| id | username  | password     | email       | regTime    | face     | proId | age  | sex     |
+----+-----------+--------------+-------------+------------+----------+-------+------+---------+
|  1 | 张三      | zhangsan     | user@qq.com | 1419811708 | user.jpg |     1 |   18 | male    |
|  2 | 张三丰    | zhangsanfeng | user@qq.com | 1419812708 | user.jpg |     2 |   18 | female  |
| 11 | john      | john         | user@qq.com | 1419841708 | user.jpg |     2 |   18 | unknown |
+----+-----------+--------------+-------------+------------+----------+-------+------+---------+
3 rows in set (0.00 sec)
  1. GROUP BY 也可以按照多个字段来分组
mysql> SELECT*FROM cms_user GROUP BY id, sex;
+----+-----------+--------------+-------------+------------+----------+-------+------+---------+
| id | username  | password     | email       | regTime    | face     | proId | age  | sex     |
+----+-----------+--------------+-------------+------------+----------+-------+------+---------+
|  1 | 张三      | zhangsan     | user@qq.com | 1419811708 | user.jpg |     1 |   18 | male    |
|  2 | 张三丰    | zhangsanfeng | user@qq.com | 1419812708 | user.jpg |     2 |   18 | female  |
|  3 | 章子怡    | zhangsan     | user@qq.com | 1419813708 | user.jpg |     3 |   18 | male    |
|  4 | long      | long         | user@qq.com | 1419814708 | user.jpg |     4 |   18 | female  |
|  5 | ring      | ring         | user@qq.com | 1419815708 | user.jpg |     2 |   18 | male    |
|  6 | queen     | queen        | user@qq.com | 1419861708 | user.jpg |     3 |   18 | female  |
|  7 | king      | king         | user@qq.com | 1419817708 | user.jpg |     5 |   18 | male    |
|  8 | blek      | blek         | user@qq.com | 1419818708 | user.jpg |     1 |   18 | female  |
|  9 | rose      | rose         | user@qq.com | 1419821708 | user.jpg |     2 |   18 | male    |
| 10 | lily      | lily         | user@qq.com | 1419831708 | user.jpg |     2 |   18 | female  |
| 11 | john      | john         | user@qq.com | 1419841708 | user.jpg |     2 |   18 | unknown |
| 12 | test1     | test1        | user@qq.com | 1419811708 | user.jpg |     1 | NULL | unknown |
+----+-----------+--------------+-------------+------------+----------+-------+------+---------+
  1. 如果有查询条件,要先写查询条件,再写分组
mysql> SELECT*FROM cms_user WHERE id>=5 GROUP BY sex;
+----+----------+----------+-------------+------------+----------+-------+------+---------+
| id | username | password | email       | regTime    | face     | proId | age  | sex     |
+----+----------+----------+-------------+------------+----------+-------+------+---------+
|  5 | ring     | ring     | user@qq.com | 1419815708 | user.jpg |     2 |   18 | male    |
|  6 | queen    | queen    | user@qq.com | 1419861708 | user.jpg |     3 |   18 | female  |
| 11 | john     | john     | user@qq.com | 1419841708 | user.jpg |     2 |   18 | unknown |
+----+----------+----------+-------------+------------+----------+-------+------+---------+
3 rows in set (0.00 sec)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值