func (l StringList) Value() (driver.Value, error) {
	return strings.Join(sliceutil.FilterString(l, sliceutil.FilterStringEmpty), ","), nil
}
Value implements the SQL Value function to determine what to store in the DB.
package sqlutil  
import (
	"database/sql/driver"
	"fmt"
	"html/template"
	"strconv"
	"strings"
	"github.com/teamwork/utils/sliceutil"
)
type IntList []int64
func (l IntList) Value() (driver.Value, error) {
	return sliceutil.JoinInt(l), nil
}
func (l *IntList) Scan(v interface{}) error {
	if v == nil {
		return nil
	}
	ints := []int64{}
	for _, i := range strings.Split(fmt.Sprintf("%s", v), ",") {
		i = strings.TrimSpace(i)
		if i == "" {
			continue
		}
		in, err := strconv.ParseInt(i, 10, 64)
		if err != nil {
			return err
		}
		ints = append(ints, in)
	}
	*l = ints
	return nil
}
type StringList []string