Skip to content

LineoIT/sqlw

Repository files navigation

Installation

go get -u github.com/LineoIT/sqlw

How to use

  • select all(*)
	q, args := sqlw.Select("authors").
		Where("id", "=", 11).
		Build()
	fmt.Println(sqlw.Debug(q, args...))

resultat:

select * from authors where id = 11
  • insert query
	type User struct {
		ID        int
		Email     string
		Phone     string
		Role      string
		Age       int
		UpdatedAt time.Time
	}

	user := User{
		Email: "abc@example.com",
		Phone: "+7939739473",
		Age:   29,
		ID:    3,
	}
    // insert
    q, args := sqlw.Insert("users").
		Value("email", user.Email).
		Value("phone", sqlw.Nullif(user.Phone, "''")).
		Value("age", sqlw.Coalesce(user.Age, "age")).
		Returns("id").
		Build()
	fmt.Println(sqlw.Debug(q, args...))

resultat:

insert into users(email,phone,age) values(abc@example.com,nullif(+7939739473,''),coalesce(29,age)) returning id
  • Update query
	// update
	q, args = sqlw.Update("users").
		Set("email", user.Email).
		Set("phone", sqlw.Nullif(user.Phone, "''")).
		Set("age", sqlw.Coalesce(user.Age, "age")).
		Set("role", sqlw.Coalesce(sqlw.Nullif(user.Role, "''"), "role")).
		Where("id", "=", user.ID).
		Returns("updated_at").
		Build()
	fmt.Println(sqlw.Debug(q, args...))

resultat:

update users set email=abc@example.com,phone=nullif(+7939739473,''),age=coalesce(29,age),role=coalesce(nullif(,''),role) returning updated_at where id = 3