建设网银登录网站,wordpress怎么删除目录下,胶南做网站,上海 房地产网站建设文章目录 前言MySQL 排序语法在命令提示符中使用 ORDER BY 子句在PHP脚本中使用 ORDER BY 子句 MySQL 分组GROUP BY 语法实例演示使用 WITH ROLLUP 后言 前言 hello world欢迎来到前端的新世界 #x1f61c;当前文章系列专栏#xff1a;Mysql #x1f431;#x1f453;博… 文章目录 前言MySQL 排序语法在命令提示符中使用 ORDER BY 子句在PHP脚本中使用 ORDER BY 子句 MySQL 分组GROUP BY 语法实例演示使用 WITH ROLLUP 后言 前言 hello world欢迎来到前端的新世界 当前文章系列专栏Mysql 博主在前端领域还有很多知识和技术需要掌握正在不断努力填补技术短板。(如果出现错误感谢大家指出) 感谢大家支持您的观看就是作者创作的动力 MySQL 排序
我们知道从MySQL表中使用SQL SELECT 语句来读取数据。
如果我们需要对读取的数据进行排序我们就可以使用MySQL的 ORDER BY 子句来设定你想按哪个字段哪中方式来进行排序再返回搜索结果。
语法
以下是SQL SELECT 语句使用 ORDER BY 子句将查询数据排序后再返回数据
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]你可以使用任何字段来作为排序的条件从而返回排序后的查询结果。你可以设定多个字段来排序。你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下它是按升排列。你可以添加 WHERE…LIKE 子句来设置条件。
在命令提示符中使用 ORDER BY 子句
以下将在 SQL SELECT 语句中使用 ORDER BY 子句来读取MySQL 数据表 w3cschool_tbl 中的数据
实例 尝试以下实例结果将按升序排列
roothost# mysql -u root -p password;
Enter password:
mysql use W3CSCHOOL;
Database changed
mysql SELECT * from w3cschool_tbl ORDER BY w3cschool_author ASC;
---------------------------------------------------------------
| w3cschool_id | w3cschool_title | w3cschool_author | submission_date |
---------------------------------------------------------------
| 2 | Learn MySQL | Abdul S | 2007-05-24 |
| 1 | Learn PHP | John Poul | 2007-05-24 |
| 3 | JAVA Tutorial | Sanjay | 2007-05-06 |
---------------------------------------------------------------
3 rows in set (0.00 sec)mysql SELECT * from w3cschool_tbl ORDER BY w3cschool_author DESC;
---------------------------------------------------------------
| w3cschool_id | w3cschool_title | w3cschool_author | submission_date |
---------------------------------------------------------------
| 3 | JAVA Tutorial | Sanjay | 2007-05-06 |
| 1 | Learn PHP | John Poul | 2007-05-24 |
| 2 | Learn MySQL | Abdul S | 2007-05-24 |
3 rows in set (0.00 sec)mysql读取 w3cschool_tbl 表中所有数据并按 w3cschool_author 字段的降序排列。
在PHP脚本中使用 ORDER BY 子句
你可以使用PHP函数的mysql_query()及相同的SQL SELECT 带上 ORDER BY 子句的命令来获取数据。 该函数用于执行SQL命令然后通过 PHP 函数 mysql_fetch_array() 来输出所有查询的数据。 实例 尝试以下实例查询后的数据按 w3cschool_author 字段的降序排列后返回。
?php
$dbhost localhost:3036;
$dbuser root;
$dbpass rootpassword;
$conn mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){die(Could not connect: . mysql_error());
}
$sql SELECT w3cschool_id, w3cschool_title,w3cschool_author, submission_dateFROM w3cschool_tblORDER BY w3cschool_author DESC;mysql_select_db(W3CSCHOOL);
$retval mysql_query( $sql, $conn );
if(! $retval ){die(Could not get data: . mysql_error());
}
while($row mysql_fetch_array($retval, MYSQL_ASSOC)){echo Tutorial ID :{$row[w3cschool_id]}.Title: {$row[w3cschool_title]} .Author: {$row[w3cschool_author]} .Submission Date : {$row[submission_date]} .--------------------------------
;
}
echo Fetched data successfully\n;
mysql_close($conn);
?MySQL 分组
GROUP BY 语句根据一个或多个列对结果集进行分组。
在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。
GROUP BY 语法
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;实例演示
本章节实例使用到了以下表结构及数据使用前我们可以先将以下数据导入数据库中。
-- ----------------------------
-- Table structure for employee_tbl
-- ----------------------------
DROP TABLE IF EXISTS employee_tbl;
CREATE TABLE employee_tbl (id int(11) NOT NULL,name char(10) NOT NULL DEFAULT ,date datetime NOT NULL,singin tinyint(4) NOT NULL DEFAULT 0 COMMENT 登录次数,PRIMARY KEY (id)
) ENGINEInnoDB DEFAULT CHARSETutf8;-- ----------------------------
-- Records of employee_tbl
-- ----------------------------
BEGIN;
INSERT INTO employee_tbl VALUES (1, 小明, 2016-04-22 15:25:33, 1), (2, 小王, 2016-04-20 15:25:47, 3), (3, 小丽, 2016-04-19 15:26:02, 2), (4, 小王, 2016-04-07 15:26:14, 4), (5, 小明, 2016-04-11 15:26:40, 4), (6, 小明, 2016-04-04 15:26:54, 2);
COMMIT;SET FOREIGN_KEY_CHECKS 1;导入成功后执行以下 SQL 语句
mysql set names utf8;
mysql SELECT * FROM employee_tbl;
-----------------------------------------
| id | name | date | singin |
-----------------------------------------
| 1 | 小明 | 2016-04-22 15:25:33 | 1 |
| 2 | 小王 | 2016-04-20 15:25:47 | 3 |
| 3 | 小丽 | 2016-04-19 15:26:02 | 2 |
| 4 | 小王 | 2016-04-07 15:26:14 | 4 |在这里插入代码片
| 5 | 小明 | 2016-04-11 15:26:40 | 4 |
| 6 | 小明 | 2016-04-04 15:26:54 | 2 |
-----------------------------------------
6 rows in set (0.00 sec)接下来我们使用 GROUP BY 语句 将数据表按名字进行分组并统计每个人有多少条记录
mysql SELECT name, COUNT(*) FROM employee_tbl GROUP BY name;
------------------
| name | COUNT(*) |
------------------
| 小丽 | 1 |
| 小明 | 3 |
| 小王 | 2 |
------------------
3 rows in set (0.01 sec)使用 WITH ROLLUP
WITH ROLLUP 可以实现在分组统计数据基础上再进行相同的统计SUM,AVG,COUNT…。
例如我们将以上的数据表按名字进行分组再统计每个人登录的次数
mysql SELECT name, SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;
----------------------
| name | singin_count |
----------------------
| 小丽 | 2 |
| 小明 | 7 |
| 小王 | 7 |
| NULL | 16 |
----------------------
4 rows in set (0.00 sec)其中记录 NULL 表示所有人的登录次数。
我们可以使用 coalesce 来设置一个可以取代 NUll 的名称coalesce 语法
select coalesce(a,b,c);参数说明如果anull,则选择b如果bnull,则选择c如果a!null,则选择a如果a b c 都为null 则返回为null没意义。
以下实例中如果名字为空我们使用总数代替
mysql SELECT coalesce(name, 总数), SUM(singin) as singin_count FROM employee_tbl GROUP BY name WITH ROLLUP;
----------------------------------------
| coalesce(name, 总数) | singin_count |
----------------------------------------
| 小丽 | 2 |
| 小明 | 7 |
| 小王 | 7 |
| 总数 | 16 |
----------------------------------------
4 rows in set (0.01 sec)后言 创作不易要是本文章对广大读者有那么一点点帮助 不妨三连支持一下您的鼓励就是博主创作的动力