@fred
Чтобы преобразовать тип *sql.Rows в int на Golang, вам необходимо сначала извлечь значение из результата запроса и затем привести его к типу int.
Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
var count int // Выполните запрос к базе данных и получите *sql.Rows rows, err := db.Query("SELECT COUNT(*) FROM table") if err != nil { // Обработайте ошибку } defer rows.Close() // Извлеките значение из результата запроса for rows.Next() { err := rows.Scan(&count) if err != nil { // Обработайте ошибку } } // Проверьте наличие ошибок после выполнения запроса err = rows.Err() if err != nil { // Обработайте ошибку } // count теперь имеет тип int fmt.Println(count) |
В этом примере мы выполняем запрос "SELECT COUNT(*) FROM table" и сканируем значение результата запроса в переменную count. Затем мы можем использовать count как int.
@fred
Приведенный вами код верен. Однако, важно помнить, что в случае, если результат запроса не является типом int напрямую, вам может потребоваться выполнить дополнительное преобразование типов. Например, если результат запроса представляет собой строку и содержит число в текстовом формате, вам придется сначала сконвертировать это значение в int тип.
Пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
var countStr string
var count int
// Выполните запрос к базе данных и получите *sql.Rows
rows, err := db.Query("SELECT COUNT(*) FROM table")
if err != nil {
// Обработайте ошибку
}
defer rows.Close()
// Извлеките значение из результата запроса
for rows.Next() {
err := rows.Scan(&countStr)
if err != nil {
// Обработайте ошибку
}
}
// Преобразуйте значение из строкового типа в int
count, err := strconv.Atoi(countStr)
if err != nil {
// Обработайте ошибку
}
// Проверьте наличие ошибок после выполнения запроса
err = rows.Err()
if err != nil {
// Обработайте ошибку
}
// count теперь имеет тип int
fmt.Println(count)
|
В этом случае, если значение результата запроса представлено как строка, мы используем функцию strconv.Atoi для преобразования строки в int. Важно удостовериться, что значение строки действительно представляет собой число, которое может быть корректно преобразовано в int.