Как узнать, есть ли строки, полученные в запросе | clickhouse и GOlang

Есть ли способ узнать, извлекал ли запрос данные из базы данных clickhouse с помощью GOlang?

У меня есть это:

dataRows, err := connect.Query(dbQuery)
if err != nil {
    log.Fatal(err)
}
defer dataRows.Close()

Мне интересно, могли бы вы сделать что-нибудь вроде:

var rowsRetrieved int = dataRows.RowsCount

Спасибо, я был бы признателен за вашу помощь.

Это итератор (можно ли использовать на нем метод .Next())? Если это так, и если у него нет RowsCount или его эквивалента, вам, вероятно, придется перебирать строки и подсчитывать их таким образом. Дайте ссылку на пакет, который вы используете, и я могу копать дальше.

Lansana Camara 02.08.2018 20:23

Я использую этот драйвер для подключения к clickhouse: https://github.com/mailru/go-clickhouse

Javier Salas 02.08.2018 20:25
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
1
2
213
1

Ответы 1

Предполагая, что вам нужно только знать, были ли строки любой, вы можете сделать:

dataRows, err := connect.Query(dbQuery)
if err != nil {
    log.Fatal(err)
}
defer dataRows.Close()
if hasRows := dataRows.Next(); hasRows {
    handleRow(dataRows)
    for dataRows.Next() {
        handleRow(dataRows)
    }
} else {
    // has no rows
}

func handleRow(rows *sql.Rows) {
    // handle the row
}

Я обнаружил, что если вы используете функцию .Next (), она будет перебирать 1 строку данных и начинать со второй, например: у вас есть 2 записи, если вы используете функцию .Next () и повторяете после использования. () он начнется со 2-й записи.

Javier Salas 02.08.2018 20:32

Другие вопросы по теме