网上找了很多关于goland使用mysql返回存储过程带返回值的,
golandgit上的mysql不支持存储过程在一个exec里面,只能一个exec,另一个query才能取到结果,这样就不能再高并发的情况下保证select取到的结果正确,为此实验了好多方法,最后只有这种方法,具体看图
goland mysql执行存储过程不支持多个返回集,用query在多个返回值的时候回取不到结果集
代码如下:
rows, _ := db.Query(fmt.Sprintf("call usp_activeAccount('%s','%s')", "t22ss33t111", "123456"))
for rows.Next() {
var result string
var accountid int
rows.Scan(&result, &accountid)
fmt.Println(result)
fmt.Println(accountid)
}
这样是可以取到结果集,但是必须usp_activeAccount这个存储过程 select返回只能有一个,不支持多个select结果集,具体看我的存储过程:
```sql
CREATE DEFINER=`root`@`localhost` PROCEDURE `usp_activeAccount`(in userid varchar(50), in password varchar(32))
begin