라이브러리
[PHP] TableSelect::having - 선택 조건을 설정합니다
TableSelect::having
TableSelect::having은 Laravel의 Eloquent ORM에서 사용할 수 있는 메소드입니다. 이 메소드는 쿼리 결과에서 특정 조건을 만족하는 레코드를 필터링하는 데 사용됩니다. having은 where와 비슷하지만, having은 GROUP BY 쿼리에서 사용됩니다.
예제
#hostingforum.kr
php
// 사용 예제
use IlluminateDatabaseEloquentBuilder;
class User extends Model
{
public function scopeHavingAgeOver30(Builder $query)
{
return $query->having('age', '>', 30);
}
}
// 사용 예제
$users = User::havingAgeOver30()->get();
사용 방법
TableSelect::having은 다음과 같은 형식으로 사용할 수 있습니다.
- `having($column, $operator, $value)`: `$column`에 지정된 열의 `$operator` 연산자로 `$value`를 비교하여 레코드를 필터링합니다.
- `havingRaw($sql, $bindings = [])`: `$sql`에 지정된 SQL 문을 사용하여 레코드를 필터링합니다. `$bindings`는 `$sql`에 사용할 파라미터입니다.
예제 코드
#hostingforum.kr
php
// 사용 예제
use IlluminateDatabaseEloquentBuilder;
class User extends Model
{
public function scopeHavingAgeOver30(Builder $query)
{
return $query->having('age', '>', 30);
}
public function scopeHavingNameLike(Builder $query, $name)
{
return $query->havingRaw("LOWER(name) LIKE ?", ['%' . strtolower($name) . '%']);
}
}
// 사용 예제
$users = User::havingAgeOver30()->havingNameLike('john')->get();
GROUP BY 쿼리
TableSelect::having은 GROUP BY 쿼리에서 사용할 수 있습니다. GROUP BY 쿼리에서는 having이 where와 다른 점이 있습니다. GROUP BY 쿼리에서는 having이 where보다 먼저 실행됩니다.
#hostingforum.kr
php
// 사용 예제
use IlluminateDatabaseEloquentBuilder;
class User extends Model
{
public function scopeHavingAgeOver30(Builder $query)
{
return $query->groupBy('city')->having('avg(age)', '>', 30);
}
}
// 사용 예제
$users = User::havingAgeOver30()->get();
결론
TableSelect::having은 Laravel의 Eloquent ORM에서 사용할 수 있는 메소드입니다. 이 메소드는 쿼리 결과에서 특정 조건을 만족하는 레코드를 필터링하는 데 사용됩니다. having은 where와 비슷하지만, having은 GROUP BY 쿼리에서 사용됩니다. having은 사용하기 간단하고 직관적이며, GROUP BY 쿼리에서 사용할 수 있습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.