Golang/mysql: getting just single record!

I wrote a function to get slice of products but this function returns just slice of one record.
Note: I tried same query in mysql console and it found almost 200 records.

func FindProductsByQueryString(query, search string) (result []Product, err error) {
connection, err := sql.Open("mysql", "My database config")
if err != nil {
	return
}

rows, err := connection.Query(query, search)
if err != nil {
	log.Println(err.Error())
	return
}

defer rows.Close()
if rows.Next() {
	prod := Product{}
	err = rows.Scan(&prod.Id, &prod.Name, &prod.Group, &prod.Category, &prod.Brand,
		&prod.Url, &prod.Image, &prod.OPrice, &prod.Price, &prod.TRate, &prod.Rate, &prod.Unit)
	if err != nil {
		log.Println(err.Error())
		return
	}

	result = append(result, prod)
  }

  return
}

Original query:

SELECT * FROM product WHERE MATCH(Name) AGAINST(?);

Sample Query:

SELECT * FROM product WHERE MATCH(Name) AGAINST('Nokia');

You mean for rows.Next(). No loop, no multiple entries.

1 Like

OMG. Iā€™m such a stupid. And thank you.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.