>  기사  >  백엔드 개발  >  golang 조건부 쿼리

golang 조건부 쿼리

王林
王林원래의
2023-05-22 14:32:38497검색

Golang은 빠르고 효율적인 프로그래밍 언어로, 학습 곡선이 다른 언어보다 평평하고 동시성 성능이 매우 뛰어나 웹 개발 및 후처리 분야에서 매우 인기가 있기 때문에 점점 더 많은 프로그래머가 Golang을 사용하고 있습니다. .엔드엔드 개발 분야에서 폭넓게 활용되고 있습니다.

웹 애플리케이션을 개발할 때 데이터베이스 쿼리 작업을 수행하는 것은 불가피하며, 여기서 조건 쿼리는 매우 중요한 부분입니다. 이 글에서는 Golang을 사용하여 조건 쿼리를 수행하는 방법을 소개합니다.

1단계: 데이터베이스에 연결

조건부 쿼리를 수행하기 전에 먼저 데이터베이스에 연결해야 합니다. Golang에는 Gorm, sqlx, go-sql-driver 등 선택할 수 있는 다양한 오픈 소스 데이터베이스 드라이버가 있습니다. 이 기사에서는 조건부 쿼리를 수행하는 방법을 보여주기 위해 Gorm을 예로 사용합니다.

Gorm을 사용하여 데이터베이스에 연결하려면 다음 단계가 필요합니다.

  1. Gorm 설치

명령줄을 사용하여 설치할 수 있습니다.

go get -u github.com/jinzhu/gorm

  1. Gorm 가져오기 package

Import Gorm 패키지 후에 데이터베이스 드라이버 패키지를 가져와야 합니다. 예를 들어 Mysql 드라이버 패키지를 가져옵니다. 데이터베이스의 경우 데이터베이스 연결 정보를 제공해야 합니다. 예:

db, err := gorm.Open("mysql", "user:password@tcp(dbhost:port)/dbname?charset=utf8&parseTime=True&loc=Local ")

이 명령문은 사용자 이름, 비밀번호, 데이터베이스 호스트 및 포트 번호와 같은 정보를 포함하여 DB 개체를 생성하고 데이터베이스에 연결합니다. 문자 집합, 시간 형식 및 시간대와 같은 정보도 포함됩니다.

    2단계: 쿼리 조건 작성
  1. 데이터베이스에 연결한 후 쿼리 조건을 작성해야 합니다. 쿼리 조건은 데이터베이스에서 얻고자 하는 데이터를 지정하는 핵심 부분입니다. Gorm은 쿼리 조건을 작성하기 위해 체인 메소드를 사용하며 Where(), Not(), Or() 및 And() 등과 같이 일반적으로 사용되는 메소드를 제공합니다.

Where() 메서드

Where() 메서드는 지정된 조건을 충족하는 레코드를 필터링하는 데 사용됩니다. 예:

db.Where("age > ?", 18)

이 문은 다음과 같은 레코드를 반환합니다. 나이는 18세 이상입니다.

  1. Not() 메서드

Not() 메서드는 지정된 조건을 충족하지 않는 레코드를 필터링하는 데 사용됩니다. 예:

db.Not("age > ?", 18)

이 문은 다음과 같습니다. 나이가 Records = 18보다 작은 항목을 반환합니다.

  1. Or() 메서드 및 And() 메서드

Or() 메서드 및 And() 메서드는 다음과 같은 복잡한 쿼리 조건을 작성하는 데 사용됩니다.

db.Where("age > ?", 18) .Or("weight > ?", 60)

이 문은 나이가 18보다 크거나 체중이 60보다 큰 레코드를 반환합니다.

    db.Where("age > ?", 18).And("name = ?", "Tom")
  1. 이 문은 나이가 18보다 크고 이름이 Tom인 레코드를 반환합니다.

위 메소드 외에도 Gorm은 데이터베이스에서 데이터를 얻는 데 사용할 수 있는 Find(), First() 및 Last() 등과 같은 다른 메소드도 제공합니다.

3단계: 쿼리 실행

쿼리 조건을 작성한 후 쿼리 문을 실행하여 데이터베이스에서 데이터를 가져와야 합니다. Gorm의 쿼리 메서드도 매우 다양하며 쿼리 결과가 기대에 부합하는지 확인하기 위해 Find(), First(), Last() 및 Count()와 같은 메서드를 제공합니다.

Find() 메서드

Find() 메서드는 데이터베이스에서 조건을 충족하는 모든 레코드를 가져올 수 있습니다. 예:

var users []User

db.Where("age > ?", 18) .Find (&users)

이 명령문은 나이가 18세 이상인 모든 사용자 정보를 반환하고 이를 사용자 변수에 저장합니다.
  1. First() 메서드 및 Last() 메서드

First() 메서드 및 Last() 메서드는 데이터베이스에서 조건을 충족하는 첫 번째 레코드와 마지막 레코드를 가져올 수 있습니다. 예:


var user User

db .Where("age > ?", 18).First(&user)

이 명령문은 나이가 18세보다 큰 첫 번째 사용자 정보를 반환하고 이를 사용자 변수에 저장합니다.
  1. var user User
  2. db.Last(&user)

이 명령문은 마지막 사용자의 정보를 반환하여 사용자 변수에 저장합니다.


Count() 메서드

Count() 메서드는 지정된 조건을 충족하는 레코드 수를 쿼리하는 데 사용됩니다. 예:


var count int

db.Table("users").Where("age > ; ?", 18).Count(&count)

이 문은 나이가 18세 이상인 사용자 수를 반환하고 이를 count 변수에 저장합니다.
  1. 요약
조건부 쿼리는 데이터베이스의 기본 작업 중 하나이며, 이를 통해 데이터베이스에서 실제로 필요한 데이터를 얻을 수 있습니다. Golang 언어의 Gorm 라이브러리는 매우 풍부하고 유연한 쿼리 방법을 제공하므로 필요에 맞는 쿼리 조건을 쉽게 구성할 수 있습니다. 또한 다양한 쿼리 작업(예: Find(), First(), Last() 및 Count() 등)을 사용하여 쿼리 결과가 예상한 대로인지 확인합니다.

위 내용은 golang 조건부 쿼리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.