Исследование специальных запросов в пакете SQL Go
Хотя в документации предполагается, что для запроса данных в Go с использованием пакета SQL требуется знание количества столбцов и типы во время компиляции, это не совсем так. Тип sql.Rows предлагает решение для гибких и специальных SQL-запросов.
Динамическое получение метаданных столбца
Метод Columns в sql.Rows предоставляет список имена столбцов результатов. Это позволяет динамически определять количество столбцов, возвращаемых произвольным запросом.
Сканирование неизвестных типов данных
Метод сканирования поддерживает сканирование значений неизвестных типов в необработанный фрагмент байта (*[]byte) или значение интерфейса{}. Это позволяет получать данные столбца без предварительного определения их типа.
Работа со специальными запросами
Объединяя эти методы, вы можете выполнять специальные запросы и получать данные в фрагмент значений интерфейса{}:
columnNames, err := rows.Columns()
if err != nil {
// Handle error
}
columns := make([]interface{}, len(columnNames))
columnPointers := make([]interface{}, len(columnNames))
for i := 0; i После этого срез столбцов будет содержать декодированные значения для всех столбцов в строке результата. Используя методы «Столбцы» и «Сканирование», вы можете эффективно обрабатывать специальные запросы в пакете SQL Go.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3