MySql高效分页SQL

public string GetQuerySql(ITSPAreaQueryModel model, object state = null)

{

var sqlBuilder = new StringBuilder(850);

sqlBuilder.AppendFormat(@"{0}

/*---Script For Select Top N Rows---*/

SELECT SQL_CALC_FOUND_ROWS

a.Id,

a.AreaName ,

a.Location ,

a.AreaHead ,

a.Remark ,

a.RowState,

a.CreateOn,

a.CreateBy,

a.UpdateOn,

a.UpdateBy

FROM ITSPArea as a", _SqlComment);

if (model.RowState == null)

{

sqlBuilder.AppendFormat("{0}WHERE a.RowState IN ( 0,1 )", Environment.NewLine);

}

else

{

sqlBuilder.AppendFormat("{0}WHERE a.RowState={1}", Environment.NewLine, model.RowState);

}

if (!string.IsNullOrEmpty(model.AreaName))

{

sqlBuilder.AppendFormat("{0}and a.AreaName=@AreaName", Environment.NewLine);

}

if (!string.IsNullOrEmpty(model.AreaHead))

{

sqlBuilder.AppendFormat("{0}and a.AreaHead=@AreaHead", Environment.NewLine);

}

sqlBuilder.AppendFormat("{0}order by a.CreateOn desc", Environment.NewLine);

sqlBuilder.AppendFormat("{0}LIMIT {1},{2};", Environment.NewLine, (model.PageIndex - 1) * model.PageSize, model.PageSize);

sqlBuilder.AppendFormat("{0}SELECT FOUND_ROWS()", Environment.NewLine);

return sqlBuilder.ToString();

}

相关推荐
love530love15 分钟前
【笔记】旧版MSYS2 环境中 Rust 升级问题及解决过程
开发语言·人工智能·windows·笔记·python·rust·virtualenv
秃头摸鱼侠1 小时前
MySQL查询语句(续)
数据库·mysql
MuYiLuck1 小时前
【redis实战篇】第八天
数据库·redis·缓存
睡觉待开机1 小时前
6. MySQL基本查询
数据库·mysql
qq_408413391 小时前
spark 执行 hive sql数据丢失
hive·sql·spark
陳麦冬1 小时前
深入理解指针(二)
c语言·学习
黑色的山岗在沉睡1 小时前
《视觉SLAM十四讲》自用笔记 第二讲:SLAM系统概述
笔记
大熊猫侯佩2 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(三)
数据库·swiftui·swift
大熊猫侯佩2 小时前
由一个 SwiftData “诡异”运行时崩溃而引发的钩深索隐(二)
数据库·swiftui·swift
大熊猫侯佩2 小时前
用异步序列优雅的监听 SwiftData 2.0 中历史追踪记录(History Trace)的变化
数据库·swiftui·swift