Files
module-mysql/target/mysql/builder_select.lua
2025-03-17 22:06:08 +08:00

179 lines
4.6 KiB
Lua

local result = require("mysql.result")
local mysql_builder_select = {}
mysql_builder_select.__index = mysql_builder_select
--[[
创建一个新的 fw_mysql_builder_select 对象
@return 返回一个新的 fw_mysql_builder_select 对象
]]
function mysql_builder_select.new(__module)
local instance = setmetatable({}, mysql_builder_select)
instance.module = __module
return instance
end
--[[
添加 int32 类型的条件
@param name 字段名称
@param expression 条件表达式
@param value 值
@return 返回 mysql_builder_select 对象自身,以便链式调用
]]
function mysql_builder_select:where_i32(name, expression, value)
self.module:where_i32(name, expression, fw_toint(value))
return self
end
--[[
添加 int64 类型的条件
@param name 字段名称
@param expression 条件表达式
@param value 值
@return 返回 mysql_builder_select 对象自身,以便链式调用
]]
function mysql_builder_select:where_i64(name, expression, value)
self.module:where_i64(name, expression, fw_toint(value))
return self
end
--[[
添加 double 类型的条件
@param name 字段名称
@param expression 条件表达式
@param value 值
@return 返回 mysql_builder_select 对象自身,以便链式调用
]]
function mysql_builder_select:where_dob(name, expression, value)
self.module:where_dob(name, expression, value)
return self
end
--[[
添加字符串类型的条件
@param name 字段名称
@param expression 条件表达式
@param value 值
@return 返回 mysql_builder_select 对象自身,以便链式调用
]]
function mysql_builder_select:where_str(name, expression, value)
self.module:where_str(name, expression, value)
return self
end
--[[
添加自定义表达式的条件
@param expression 条件表达式
@return 返回 mysql_builder_select 对象自身,以便链式调用
]]
function mysql_builder_select:where_expression(expression)
self.module:where_expression(expression)
return self
end
--[[
添加 LIKE 条件
@param name 字段名称
@param value 值
@return 返回 mysql_builder_select 对象自身,以便链式调用
]]
function mysql_builder_select:where_like(name, value)
self.module:where_like(name, value)
return self
end
--[[
设置查询的表名
@param table_name 表名
@return 返回 mysql_builder_select 对象自身,以便链式调用
]]
function mysql_builder_select:table(table_name)
self.module:table(table_name)
return self
end
--[[
设置查询的字段
@param table 字段表
@return 返回 mysql_builder_select 对象自身,以便链式调用
]]
function mysql_builder_select:field(table)
self.module:field(table)
return self
end
--[[
设置分页参数
@param page 页码
@param count 每页记录数
@return 返回 mysql_builder_select 对象自身,以便链式调用
]]
function mysql_builder_select:page(page, count)
self.module:page(fw_toint(page), fw_toint(count))
return self
end
--[[
设置查询限制
@param start 起始位置
@param count 记录数
@return 返回 mysql_builder_select 对象自身,以便链式调用
]]
function mysql_builder_select:limit(start, count)
self.module:limit(fw_toint(start), fw_toint(count))
return self
end
--[[
设置排序
@param orderby 排序语句
@return 返回 mysql_builder_select 对象自身,以便链式调用
]]
function mysql_builder_select:orderby(orderby)
self.module:orderby(orderby)
return self
end
--[[
设置分组
@param groupby 排序语句
@return 返回 mysql_builder_select 对象自身,以便链式调用
]]
function mysql_builder_select:groupby(expd)
self.module:groupby(expd)
return self
end
--[[
设置分组结果
@param having 排序语句
@return 返回 mysql_builder_select 对象自身,以便链式调用
]]
function mysql_builder_select:having(expd)
self.module:having(expd)
return self
end
--[[
清空查询条件
]]
function mysql_builder_select:clear()
self.module:clear()
end
--[[
执行查询
@return 返回 mysql_result 对象
]]
function mysql_builder_select:query()
return result.new(self.module:query())
end
--[[
获取查询结果的记录数
@return 返回记录数
]]
function mysql_builder_select:count()
return self.module:count()
end
return mysql_builder_select