likes
comments
collection
share

mysql专题系列十四:三个实用小技巧

作者站长头像
站长
· 阅读数 38

一、mysql中实现rownum,对结果进行排序

其中的一个问题就是但是用rownum函数的时候发现Mysql里面没有,所以只能用曲线救过的方式如下:

SELECT
	(@rownum := @rownum + 1) AS rownum,
	USER.* 
FROM
	USER,
	( SELECT @rownum := 0 ) r;

效果图: mysql专题系列十四:三个实用小技巧 由于是通过曲线救过方式实现,所以肯定没有Oracle自身实现的效率高;希望在以后的更新中,Mysql可以自带该函数,这里只是一种实现方式,没有考虑效率高低,只是可以使用而已,如果以后有时间我可以通过多种方式实现,对比每种实现方式的效率高低。

mysql专题系列十四:三个实用小技巧

SELECT
	(@rownum := @rownum + 2) AS rownum,
	USER.* 
FROM
	USER,
	( SELECT @rownum := 1 ) r;

效果图: mysql专题系列十四:三个实用小技巧 关于oracle的rownum的解释和使用可以参考这篇文章: blog.csdn.net/weter_drop/…

二、 mysql判断某一张表是否存在的sql语句以及方法

有五种方式进行判断:

-- 百分号中间为需要查询的表名
 SHOW TABLES LIKE%user%’;

dbname 为数据库名字 tablename 为你需要查询的表名称,注意使用 TEMPORARY 关键字创建出来的临时表无法查询出来。

select TABLE_NAME from INFORMATION_SCHEMA.TABLES whereTABLE_SCHEMA=‘dbname’ and TABLE_NAME=‘tablename’ ;
  1. 如果表不存在就建立这个表,那么可以直接用 create table if not exists tablename 这样的指令来建立,不需要先去查询表是否存在。

  2. 从模板表创建表:create table if not exists like old_table_name;

  3. 使用select * from tablename;如果表不存在则会报错。

三、 limit的巧妙用法

应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求

语法:

	select 查询列表
	from
join type join2
	on 连接条件
	where 筛选条件
	group by 分组字段
	having 分组后的筛选
	order by 排序的字段】
	limit 【offset,】size;

	offset要显示条目的起始索引(起始索引从0开始)
	size 要显示的条目个数
特点:
	①limit语句放在查询语句的最后
	②公式
	要显示的页数 page,每页的条目数size

	select 查询列表
	from
	limit (page-1)*size,size;
	
	size=10
	page  
	1	0
	2  	10
	3	20

*/

案例1:查询前五条员工信息(如果从零开始查询可以省略offset参数)

SELECT * FROM  employees LIMIT 0,5;
SELECT * FROM  employees LIMIT 5;

案例2:查询第11条——第25条

SELECT * FROM  employees LIMIT 10,15;
转载自:https://juejin.cn/post/7059400703420137509
评论
请登录