美文网首页编程语言-PHP
thinkphp6查询 mysql中varchar类型最大值(

thinkphp6查询 mysql中varchar类型最大值(

作者: 月圆星繁 | 来源:发表于2021-01-12 12:00 被阅读0次

> 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();

相关文章

网友评论

    本文标题:thinkphp6查询 mysql中varchar类型最大值(

    本文链接:https://www.haomeiwen.com/subject/jrbsaktx.html