mysql SQL_CALC_FOUND_ROWS 特性: 一条 sql 语句同时查出总数及分页结果

介绍了如何通过利用 mysql SQL_CALC_FOUND_ROWS 特性, 在一条 sql 语句里同时查出总数及分页结果

展示分页列表是一个常见的开发需求, 需要查询出总数及分页数据.

传统分页查询做法

传统上, 这个一般是通过两条 sql 去实现. 先是查询总数, 比如这样:

select count(*) from programmer where age >= 35;

然后再查分页结果:

select * from programmer where age >= 35 limit 0, 10;

如果是简单的查询还好, 但对于一些复杂的涉及很多条件的查询, 往往需要重复那些条件.

注: 在 mybatis 中, 你可以把公共的条件抽取出来做成一个可复用模块, 不过这样一来结构就相对复杂了, 也不是那么直观.

那么, 是否有方式可以避免上述麻烦, 一条语句就可以查出总数及分页结果呢? 那就要用到 mysql 里的 SQL_CALC_FOUND_ROWS 特性了.

继续阅读“mysql SQL_CALC_FOUND_ROWS 特性: 一条 sql 语句同时查出总数及分页结果”

Mysql 的示例数据库 Sakila 介绍

介绍了 mysql 的示例数据库 sakila,包括安装,下载,导入,以及业务和结构的简要介绍。

在自学或者在一些个人项目上实践一些新特性时,经常需要有数据库的配合,但通常,公司的数据库是不能拿来私用的,这时如果有一些示例数据库就好办多了。

虽然也可以自行构建一个数据库并插入数据,但通常是一件较为麻烦的事,特别是准备那些有意义的数据。

继续阅读“Mysql 的示例数据库 Sakila 介绍”

mysql 创建本地用户并赋予数据库权限示例

简要介绍了在 mysql 中如何创建一个本地用户并赋予相应数据库权限。

在安装 mysql 时通常会生成一个超级用户 root,很多人之后就一直沿用这一个用户,虽然这会很方便,但超级用户权限太大,在所有地方使用它通常是一个安全隐患。 继续阅读“mysql 创建本地用户并赋予数据库权限示例”