> PHP 프레임워크 > Laravel > laravel이 clickhouse 쿼리를 사용할 때 '열 누락' 문제 해결

laravel이 clickhouse 쿼리를 사용할 때 '열 누락' 문제 해결

藏色散人
풀어 주다: 2022-10-31 16:00:31
앞으로
3237명이 탐색했습니다.

다음 Laravel 튜토리얼 칼럼에서는 laravel에서 clickhouse 쿼리를 사용할 때 발생하는 "DB::Exception: Missing columns" 문제를 소개하겠습니다. 모든 분들께 도움이 되길 바랍니다!

사용 시 특별한 주의를 기울이세요. clickhouse : 이렇게 쓰지 마세요!

   $where = [];
    if($cookieId) {
        $where['cookie_id'] = $cookieId;
    }        
    if($host) {
        $where['host'] = $host;
    }        
    if($uri) {
        $where['uri'] = $uri;
    }
    $builder = DB::connection('clickhouse')
        ->table((new AccessLogs)->getTable())
        ->where($where);
    if(!empty($startTime)) {
        $builder->where('create_time', '>=', $startTime);
    }
    if(!empty($endTime)) {
        $builder->where(&#39;create_time&#39;, &#39;<=&#39;, $endTime);
    }
로그인 후 복사

여러 조건으로 쿼리하는 경우 $where 배열이 SQL의 필드로 처리되어 DB::Exception: Missing columns: '2022-09-27 13:00:49' '2022-09-27이 발생합니다. 16:00:49' 쿼리 처리 중 오류가 발생했습니다.

다음과 같이 최적화하세요:

   $builder = DB::connection(&#39;clickhouse&#39;)
        ->table((new AccessLogs)->getTable());
    if(!empty($cookieId)) {
        $builder->where(&#39;cookie_id&#39;, $cookieId);
    }        
    if(!empty($host)) {
        $builder->where(&#39;host&#39;, $host);
    }        
    if(!empty($uri)) {
        $builder->where(&#39;uri&#39;, $uri);
    }
    if(!empty($startTime)) {
        $builder->where(&#39;create_time&#39;, &#39;>=&#39;, $startTime);
    }
    if(!empty($endTime)) {
        $builder->where(&#39;create_time&#39;, &#39;<=&#39;, $endTime);
    }
로그인 후 복사

올바르게 쿼리하려면.

한 가지 더: 명령줄에서 쿼리할 때 매개변수 값에 작은따옴표를 사용하세요. 큰따옴표를 사용하면 매개변수 값도 필드로 처리됩니다.

올바른 작업은 다음과 같습니다.

select * from access_log where create_time >= ‘2022-09-27 13:00:49’ and create_time <= ‘2022-09-27 16:00:49’ order by create_time desc limit 10;
로그인 후 복사

위 내용은 laravel이 clickhouse 쿼리를 사용할 때 '열 누락' 문제 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:learnku.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿