> mysql中varchar类型最大值
需要转换字段类型用到 Convert,而不是直接使用 max(),查询的结果会有差别。
在thinkphp6中配合 fieldRaw() 使用
class GoodsUnit extends Model
{
/**
* 获取单位编号最大值
* @param $orgId
* @return int
*/
public function getMaxNumber($orgId)
{
$number = $this->where(["org_id" => $orgId])->fieldRaw("max(Convert(serial_number,SIGNED)) as max_number")->select()->toArray();
$number = $number[0][ max_number ];
$number = !empty($number) ? (int)$number + 1 : 1;
$serial_number = str_pad($number, 3, 0 , STR_PAD_LEFT);
return $serial_number;
}
}
> thinkphp6中使用 find_in_set(),使用whereRaw()
/*
* 获取商品列表
*/
public function getListWithWhere($params)
{
$salesTypeWhere = ;
if (isset($params[ salesType ]) && !empty($params[ salesType ])) {
$salesType = implode( , , $params[ salesType ]);;
$salesTypeWhere = "FIND_IN_SET( {$salesType} , sales_type)";
}
$sqlModel = M(....);
if (!empty($salesTypeWhere)) {
$sqlModel = $sqlModel->whereRaw($salesTypeWhere);
}
$list = $sqlModel->limit($pageStart, $pageSize)
->group("sk.id")
->fetchSql(false)
->select();
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...




