Categorygithub.com/bogusbul/evsql
modulepackage
0.0.0-20210419134151-bc78096e4fa2
Repository: https://github.com/bogusbul/evsql.git
Documentation: pkg.go.dev

# README

evsql

license

BSD 1-Clause

depends

  • database/sql
  • github.com/go-sql-driver/mysql
  • github.com/xwb1989/sqlparser
  • gnu make

usage

get tables from query

tables := SqlToTables("SELECT * FROM user")
// will return []string{"user"}

run a query

m, err := NewMySQL("localhost:8889", "root", "root", "mysql")
if err != nil {
	t.Error(err)
}
results,err := m.Query("SELECT * FROM user")
if err != nil {
	t.Error(err)
}
// results is []map[string]map[string]interface{} every row is a map["{table_name}"]["column_name"]interface{}{"{value}"}
// you can just use results[0]["table_name"]["column_name"] to retrieve the value

because mysql does not return all columns from different tables if they have the same name we need to prepare a statement to do so

m, err := NewMySQL("localhost:8889", "root", "root", "mysql")
if err != nil {
	t.Error(err)
}
query, err := m.StatementPrepare("SELECT * FROM user")
if err != nil {
	t.Error(err)
}
// at this point query will be something like
// SELECT user.name AS 'user.name', user.pass AS 'user.pass' FROM user
// all available user columns will replace the * from the query
results,err := m.Query(query)
if err != nil {
	t.Error(err)
}
// results is []map[string]map[string]interface{} every row is a map["{table_name}"]["column_name"]interface{}{"{value}"}
// you can just use results[0]["table_name"]["column_name"] to retrieve the value

# Functions

No description provided by the author
No description provided by the author

# Structs

No description provided by the author