Maison  >  Article  >  développement back-end  >  Comment interroger des données dans Golang

Comment interroger des données dans Golang

PHPz
PHPzoriginal
2023-03-31 10:25:511159parcourir

Avec le développement d'Internet, la quantité de données devient de plus en plus importante et l'interrogation des données devient de plus en plus complexe et difficile. Parmi les langages populaires d'aujourd'hui, Go, en tant que langage doté d'une efficacité de développement élevée et de performances puissantes, dispose de nombreux outils et bibliothèques adaptés au traitement de données à grande échelle, y compris les requêtes de données. Cet article présentera la requête de données en langage Go, y compris la construction d'instructions de requête, le traitement des résultats de requête, etc.

Construction d'instructions de requête

Go propose une variété de façons d'interroger des données, parmi lesquelles la méthode la plus courante consiste à utiliser des instructions SQL. SQL est un langage de requête structuré qui peut opérer sur des tables, des champs, etc. dans une base de données. L'utilisation de Go pour effectuer des requêtes SQL nécessite l'utilisation de bibliothèques tierces, telles que gorm, etc. Voici un exemple simple :

import (
    "github.com/jinzhu/gorm"
    _ "github.com/go-sql-driver/mysql"
)

// 连接 MySQL 数据库
db, err := gorm.Open("mysql", "user:password@/database")

// 查询语句
result := db.Raw("SELECT * FROM users WHERE name = ?", "john").Scan(&user)

Dans le code ci-dessus, gorm est d'abord utilisé pour se connecter à la base de données MySQL. Utilisez ensuite la méthode Raw() pour créer l'instruction de requête SQL. Parmi eux, ? est un espace réservé, indiquant la condition de requête, c'est-à-dire interroger les données dont le champ name est égal à john. Enfin, utilisez la méthode Scan() pour enregistrer les résultats de la requête dans la variable user. Raw() 方法构建 SQL 查询语句。其中 ? 是占位符,表示查询条件,也就是查询 name 字段等于 john 的数据。最后使用 Scan() 方法将查询结果保存到 user 变量中。

除了使用 Raw() 方法构建 SQL 查询语句外,还可以使用 gorm 提供的链式查询语法,比如:

// 查询 name 等于 john 的 users 记录,按照 age 字段倒序排序,并限制返回 10 条记录
result := db.Table("users").Where("name = ?", "john").Order("age DESC").Limit(10).Scan(&users)

上面代码中,Table() 方法指定要查询的数据表,Where() 方法指定查询条件,Order() 方法指定排序规则,Limit() 方法指定返回记录数。

查询结果处理

对于查询结果的处理,主要分为两个方面:对查询结果集的操作和对查询结果单个记录的操作。查询结果集通常使用Rows()Scan() 方法进行操作,查询结果单个记录使用 First()Last() 方法。

// 查询结果集
rows, err := db.Raw("SELECT * FROM users").Rows()
defer rows.Close()

for rows.Next() {
    // 处理每一条记录
}

// 查询结果单个记录
var user User
db.First(&user, "id = ?", 1)

user.Name = "new name"
db.Save(&user)

上面代码中,使用 Rows() 方法获取到查询结果集,再使用 Next() 方法遍历每一条记录。在循环体内部,就可以对每条记录进行操作。对于查询结果单个记录,可以使用 First() 方法获取第一条记录,使用 Last() 方法获取最后一条记录。获取到记录后,就可以进行相应的操作。比如,将 user 记录的 Name 字段更新为 new name,并使用 Save() 方法保存更新后的记录。

总结

Go 语言提供了多种方式来进行数据查询,其中比较常用的是 SQL 查询。使用第三方库 gorm 可以大大简化 SQL 查询的编写和执行。在查询结果处理方面,需要根据具体的情况采取不同的处理方式。对于查询结果集,使用 Rows() 方法获取到查询结果集,再使用 Next() 方法遍历每一条记录。对于查询结果单个记录,可以使用 First() 方法获取第一条记录,使用 Last()

En plus d'utiliser la méthode Raw() pour construire des instructions de requête SQL, vous pouvez également utiliser la syntaxe de requête en chaîne fournie par gorm, telle que : 🎜rrreee🎜Dans le code ci-dessus, La méthode Table() spécifie la table de données à interroger, la méthode Where() spécifie les conditions de requête, la méthode Order() spécifie les règles de tri, Limit () méthode Spécifiez le nombre d'enregistrements à retourner. 🎜🎜Traitement des résultats de la requête🎜🎜Le traitement des résultats de la requête est principalement divisé en deux aspects : le fonctionnement de l'ensemble de résultats de la requête et le fonctionnement d'un seul enregistrement du résultat de la requête. Le jeu de résultats de la requête est généralement exploité à l'aide de la méthode Rows() ou Scan(), et un seul enregistrement du résultat de la requête est exploité à l'aide de First() ou <code>Last (). 🎜rrreee🎜Dans le code ci-dessus, utilisez la méthode Rows() pour obtenir le jeu de résultats de la requête, puis utilisez la méthode Next() pour parcourir chaque enregistrement. Dans le corps de la boucle, vous pouvez opérer sur chaque enregistrement. Pour un seul enregistrement de résultats de requête, vous pouvez utiliser la méthode First() pour obtenir le premier enregistrement, et la méthode Last() pour obtenir le dernier enregistrement. Après avoir obtenu l'enregistrement, vous pouvez effectuer les opérations correspondantes. Par exemple, mettez à jour le champ Name de l'enregistrement user avec new name et utilisez la méthode Save() pour enregistrer les enregistrements de mise à jour. 🎜🎜Résumé🎜🎜Le langage Go offre une variété de façons d'interroger des données, parmi lesquelles la requête SQL est la plus couramment utilisée. L'écriture et l'exécution de requêtes SQL peuvent être considérablement simplifiées à l'aide de la bibliothèque tierce gorm. En termes de traitement des résultats des requêtes, différentes méthodes de traitement doivent être adoptées en fonction des situations spécifiques. Pour le jeu de résultats de requête, utilisez la méthode Rows() pour obtenir le jeu de résultats de requête, puis utilisez la méthode Next() pour parcourir chaque enregistrement. Pour un seul enregistrement de résultats de requête, vous pouvez utiliser la méthode First() pour obtenir le premier enregistrement et la méthode Last() pour obtenir le dernier enregistrement. Après avoir obtenu l'enregistrement, vous pouvez effectuer les opérations correspondantes. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn