ホームページ >バックエンド開発 >Golang >さまざまな条件の golang クエリ

さまざまな条件の golang クエリ

PHPz
PHPzオリジナル
2023-05-09 21:58:07660ブラウズ

Golang がエンタープライズ レベルのアプリケーションでますます広く使用されるようになるにつれて、データのクエリも重要な要件になりました。他の言語でのクエリとは異なり、Golangを使って条件を変えてクエリを実行する方法を紹介します。

Golang の種類

Golang では、主に次のようなさまざまなデータ型が使用できます。

  • string: 文字列型
  • int: 整数type
  • float: 浮動小数点型
  • bool: ブール型
  • struct: 構造体型

データ型が異なると、異なるデータ型を使用できます。クエリメソッド。

単一条件クエリ

単一条件クエリは、最も単純なクエリ方法であり、最も一般的な方法です。たとえば、学生リストから 18 歳の学生をクエリする必要があります。

type Student struct {
    Name string
    Age  int
}
var students []Student
// 初始化students
for _, student := range students {
    if student.Age == 18 {
        fmt.Println(student.Name)
    }
}

構造タイプ Student を定義し、ループ内で年齢が 18 に等しい学生を検索するだけです。

文字列型のフィールドを取得する必要がある場合は、strings.HasPrefix 関数または strings.HasSuffix 関数を使用できます。たとえば、名前が「ハリー ポッター」で始まる映画の映画リストをクエリするには、次のようにします。

type Movie struct {
    Name string
    Year int
}
var movies []Movie
// 初始化movies
for _, movie := range movies {
    if strings.HasPrefix(movie.Name, "Harry Potter") {
        fmt.Println(movie.Name)
    }
}

strings.HasPrefix 関数と分岐条件ステートメント (if ステートメント) を使用すると、これらの映画を見つけることができます。

複数条件クエリ

複数条件クエリでは、結果を返すために複数の異なるフィールドを考慮する必要があります。たとえば、注文のリストがある場合、特定の日付および特定の顧客の注文を取得する必要があります。

type Order struct {
    OrderID    int
    CustomerID int
    Date       time.Time
}
var orders []Order
// 初始化orders
for _, order := range orders {
    if order.CustomerID == 123 && order.Date == time.Date(2021, 1, 1, 0, 0, 0, 0, time.Local) {
        fmt.Println(order.OrderID)
    }
}

上の例では、論理演算子 && を使用して、2 つの条件が同時に真であるかどうかを確認しました。

範囲クエリ

場合によっては、範囲内のデータをクエリする必要があり、これには比較演算子の使用が必要になります。たとえば、成績が 80 から 90 の間の学生をクエリします:

type Score struct {
    Name  string
    Grade float64
}
var scores []Score
// 初始化scores
for _, score := range scores {
    if score.Grade >= 80 && score.Grade < 90 {
        fmt.Println(score.Name)
    }
}

上の例では、90 を除く 80 から 90 の間のスコアをクエリする必要があるため、>= と < 比較演算子を使用しました。 。

ファジー クエリ

ファジー クエリは非常に一般的なクエリ方法で、通常、文字列内に特定の文字または文字列を含むデータを検索するために使用されます。たとえば、文字列「Avengers」を含む映画の映画リストをクエリします。

type Movie struct {
    Name string
    Year int
}
var movies []Movie
// 初始化movies
for _, movie := range movies {
    if strings.Contains(movie.Name, "Avengers") {
        fmt.Println(movie.Name)
    }
}

上の例では、strings.Contains 関数を使用して、文字列に指定された部分文字列が含まれているかどうかを確認しました。

その他のクエリ メソッド

上記のメソッドに加えて、Golang では、正規表現マッチングの使用、マップを使用したデータのクエリなど、その他のクエリ メソッドも提供しています。さまざまなニーズやデータの種類に応じて、さまざまなクエリ方法を選択できます。

結論

この記事では、単一条件クエリ、複数条件クエリ、範囲クエリ、ファジー クエリなど、Golang のさまざまなクエリ方法を紹介します。これらのクエリ方法を理解すると、Golang を使用してデータをより効率的にクエリおよび処理するのに役立ちます。

以上がさまざまな条件の golang クエリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。