## Query D1 Database `client.D1.Database.Query(ctx, databaseID, params) (*SinglePage[QueryResult], error)` **post** `/accounts/{account_id}/d1/database/{database_id}/query` Returns the query result as an object. ### Parameters - `databaseID string` D1 database identifier (UUID). - `params DatabaseQueryParams` - `AccountID param.Field[string]` Path param: Account identifier tag. - `Sql param.Field[string]` Body param: Your SQL query. Supports multiple statements, joined by semicolons, which will be executed as a batch. - `Params param.Field[[]string]` Body param ### Returns - `type QueryResult struct{…}` - `Meta QueryResultMeta` - `ChangedDB bool` Denotes if the database has been altered in some way, like deleting rows. - `Changes float64` Rough indication of how many rows were modified by the query, as provided by SQLite's `sqlite3_total_changes()`. - `Duration float64` The duration of the SQL query execution inside the database. Does not include any network communication. - `LastRowID float64` The row ID of the last inserted row in a table with an `INTEGER PRIMARY KEY` as provided by SQLite. Tables created with `WITHOUT ROWID` do not populate this. - `RowsRead float64` Number of rows read during the SQL query execution, including indices (not all rows are necessarily returned). - `RowsWritten float64` Number of rows written during the SQL query execution, including indices. - `ServedByColo string` The three letters airport code of the colo that handled the query. - `ServedByPrimary bool` Denotes if the query has been handled by the database primary instance. - `ServedByRegion QueryResultMetaServedByRegion` Region location hint of the database instance that handled the query. - `const QueryResultMetaServedByRegionWnam QueryResultMetaServedByRegion = "WNAM"` - `const QueryResultMetaServedByRegionEnam QueryResultMetaServedByRegion = "ENAM"` - `const QueryResultMetaServedByRegionWeur QueryResultMetaServedByRegion = "WEUR"` - `const QueryResultMetaServedByRegionEeur QueryResultMetaServedByRegion = "EEUR"` - `const QueryResultMetaServedByRegionApac QueryResultMetaServedByRegion = "APAC"` - `const QueryResultMetaServedByRegionOc QueryResultMetaServedByRegion = "OC"` - `SizeAfter float64` Size of the database after the query committed, in bytes. - `Timings QueryResultMetaTimings` Various durations for the query. - `SqlDurationMs float64` The duration of the SQL query execution inside the database. Does not include any network communication. - `Results []unknown` - `Success bool` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/d1" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.D1.Database.Query( context.TODO(), "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", d1.DatabaseQueryParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Body: d1.DatabaseQueryParamsBodyD1SingleQuery{ Sql: cloudflare.F("SELECT * FROM myTable WHERE field = ? OR field = ?;"), }, }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "result": [ { "meta": { "changed_db": true, "changes": 0, "duration": 0, "last_row_id": 0, "rows_read": 0, "rows_written": 0, "served_by_colo": "LHR", "served_by_primary": true, "served_by_region": "EEUR", "size_after": 0, "timings": { "sql_duration_ms": 0 } }, "results": [ {} ], "success": true } ], "success": true } ```