Go и MySQL, не будут тянуть все столбцы - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть 4 столбца, которые мне нужно получить с помощью Go.Когда я запускаю запрос в MySQL, я получаю все 4 столбца, но когда я пытаюсь сделать это с помощью Go, я получаю только 3 столбца.Код Go:

type song struct {
    Id      int
    Artist  string
    Picture string
    Name    string
}

type data struct {
    Songs []song
}

db, err := sql.Open(sqlServer, sqlData)
checkErr(err)

rows, err := db.Query("SELECT s.id, a.name a_name, al.picture, s.song_name FROM music_songs s JOIN music_albums al ON s.album_id = al.id JOIN music_artists a ON a.id = s.artist_id WHERE s.artist_id = ? ORDER BY s.id ASC, al.id ASC", ar)
checkErr(err)

var songs []song
for rows.Next() {
    var id int
    var artist string
    var picture string
    var name string

    err = rows.Scan(&id, &artist, &picture, &name)
    songs = append(songs, song{id, artist, picture, name})
}

fmt.Println(songs)

Когда я запускаю его с помощью Go, я получаю столбцы: id, исполнитель и изображение.Я не могу получить столбец song_name.

Когда я запускаю его в MySQL, я получаю:

+----+---------+---------+--------------------------+
| id | a_name  | picture | song_name                |
+----+---------+---------+--------------------------+

1 Ответ

0 голосов
/ 23 февраля 2019

Я не знаю, как и почему, но этот код работает:

    type song struct {
        Id      int64
        Artist  string
        Name    string
        Picture string
    }

    type data struct {
        Songs []song
    }


    // Open database
    db, err := sql.Open(sqlServer, sqlData)
    checkErr(err)

    rows, err := db.Query("SELECT s.id, s.song_name, a.name, al.picture as artistName FROM music_songs s JOIN music_albums al ON s.album_id = al.id JOIN music_artists a ON a.id = s.artist_id WHERE s.artist_id = ? ORDER BY s.id ASC, al.id ASC", ar)
    checkErr(err)

    var id int64
    var songName string
    var artistName string
    var albumPicture string

    var songs []song
    for rows.Next() {

        err = rows.Scan(&id, &songName, &artistName, &albumPicture)
        songs = append(songs, song{id, songName, artistName, albumPicture})

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...