全部产品
Search
文档中心

Tablestore:Mengambil data dengan mengeksekusi pernyataan SQL

更新时间:Jul 06, 2025

Topik ini menjelaskan cara menggunakan Tablestore SDK untuk Go untuk mengambil data dengan mengeksekusi pernyataan SQL.

Prasyarat

Parameter

Parameter

Deskripsi

query

Pernyataan SQL. Konfigurasikan parameter ini berdasarkan fitur yang diperlukan.

Contoh

Contoh berikut menunjukkan cara menggunakan pernyataan select pk, long_value, double_value, string_value, bool_value from test_table limit 20 untuk mengambil data dalam tabel test_table dan mengembalikan maksimal 20 baris data. Sistem akan mengembalikan tipe permintaan dari pernyataan query, skema nilai pengembalian, dan hasil yang dikembalikan.

func queryData(client *tablestore.TableStoreClient) {
    // Buat permintaan SQL.
    request := &tablestore.SQLQueryRequest{Query: "select pk, long_value, double_value, string_value, bool_value from test_table limit 20"}

    // Dapatkan respons terhadap permintaan SQL.
    response, err := client.SQLQuery(request)
    if err != nil {
        panic(err)
    }

    // Dapatkan tipe permintaan SQL.
    fmt.Printf("tipe respons: %v\n", response.StmtType.String())

    // Dapatkan skema nilai pengembalian dari permintaan SQL.
    columns := response.ResultSet.Columns()
    fmt.Printf("meta tabel respons: [")
    for i := 0; i < len(columns); i++ {
        fmt.Printf("%v:%v ", columns[i].Name, columns[i].Type.String())
    }

    // Dapatkan hasil yang dikembalikan dari permintaan SQL.
    resultSet := response.ResultSet
    fmt.Println("]\nhasil set respons:")
    for resultSet.HasNext() {
        row := resultSet.Next()
        stringValue, _ := row.GetString(0)
        fmt.Printf("%v, ", stringValue)
        stringValue, _ = row.GetStringByName("pk")
        fmt.Printf("%v, ", stringValue)
        longValue, _ := row.GetFloat64(1)
        fmt.Printf("%v, ", longValue)
        longValue, _ = row.GetFloat64ByName("long_value")
        fmt.Printf("%v, ", longValue)
        floatValue, _ := row.GetFloat64(2)
        fmt.Printf("%v, ", floatValue)
        floatValue, _ = row.GetFloat64ByName("double_value")
        fmt.Printf("%v, ", floatValue)
        stringValue, _ = row.GetString(3)
        fmt.Printf("%v, ", stringValue)
        stringValue, _ = row.GetStringByName("string_value")
        fmt.Printf("%v, ", stringValue)
        boolValue, _ := row.GetBool(4)
        fmt.Printf("%v, ", boolValue)
        boolValue, _ = row.GetBoolByName("bool_value")
        fmt.Printf("%v\n", boolValue)
    }
}

Contoh respons:

tipe respons: SQL_SELECT
meta tabel respons: [pk:STRING long_value:INTEGER double_value:DOUBLE string_value:STRING bool_value:BOOLEAN]
hasil set respons:
binary_null, binary_null, 0, 0, 1, 1, a, a, false, false
bool_null, bool_null, 0, 0, 1, 1, a, a, false, false
double_null, double_null, 0, 0, 1, 1, a, a, false, false
long_null, long_null, 0, 0, 1, 1, a, a, false, false
string_null, string_null, 0, 0, 1, 1, , , false, false

FAQ

Referensi