当前位置: 首页 > 面试题库 >

如何查找从db.Query postgres返回的行数

林英武
2023-03-14
问题内容

我正在使用goLang lib / pq驱动程序,并尝试从数据库中获取行。

rows, err := db.Query("select id, name from mytable limit 5")

我想要一个if else子句,该子句检查结果集中是否有行,我这样做了:

if(!rows.Next()){
   log.Printf("no rows returned")
} else {
   log.Printf("rows returned")
}

但这总是少给我1条记录,由于该if子句,我认为它会跳过一条记录,因为一旦我删除了if子句,我就会正确地获得所有记录。我如何知道从选择查询返回的行数而不执行另一个查询?


问题答案:

使用“ 行”对象时,没有任何帮助程序方法可以一步完成总行数的计算。

一个简单但较慢的解决方案是使用增量变量存储行数来遍历所有结果:

// error handling omitted
rows, _ := db.Query("SELECT * FROM table")
defer rows.Close()

counter := 0
for rows.Next() {
 // you can even scan+store the result if you need them later
 counter++
}

fmt.Println("we have", counter, "rows")

否则,如果您的目标只是“计数”行数,请使用QueryRow使用更专用的查询

// error handling omitted
var counter int

db.QueryRow("SELECT count(*) FROM table").Scan(&counter)

fmt.Println("we have", counter, "rows")


 类似资料:
  • 问题内容: 如何获取使用SQL Server的SQL查询返回的列数? 例如,如果我有如下查询: 它应该返回表A1中的总列数+表A2中的总列数。但是查询可能会更复杂。 问题答案: 这是一种方法: 您可以通过创建视图来执行类似的操作。

  • 问题内容: 如何计算MySQL查询返回的行数? 问题答案: 获取查询结果中的总行数… 您可以仅迭代结果并计数。您没有说使用什么语言或客户端库,但是API确实提供了mysql_num_rows函数,该函数可以告诉您结果中的行数。 例如,这在PHP中作为mysqli_num_rows函数公开。编辑问题以提及您正在使用PHP时,这是一个使用mysqli函数的简单示例: 获取符合某些条件的行数… 只需使用

  • 问题内容: 将felixge的mysql用于node.js时,如何向结果对象询问返回的行数?我有一个相当昂贵的查询,所以我不想先运行,只是想再运行一次查询。 问题答案: 如果这是一个选择查询,则只需取返回数组的长度即可。 如果是更新/删除查询,则返回的字典将具有受影响的行变量。

  • 问题内容: 我想编写一个接受绑定变量(例如:NUM)的SQL查询,其输出由一列和:NUM行数组成,每一行都有其行号。也就是说,如果我们将:NUM作为7传递,则输出应为: 查询中不应有任何实际的数据库表,也不应使用PL / SQL代码。即在查询中仅应使用双重 有什么办法可以做到这一点? 问题答案: 您可以使用: …但是表必须包含等于或大于bind变量限制的行。 该链接演示了Oracle中的各种行号生

  • 有时它可以返回多个结果。因此,我不认为会起作用。 如何在Python中计算行数?就像在PHP中一样,我可以使用。 我找不到任何方法来做这件事。我正在使用Python3。 我对python MySQL绝对是新手。我对PHP中的MySQL真的很熟悉。 您可以使用来实现。但是,出于我的好奇:有没有方法直接使用pymysql来实现它?

  • 我是React Native的新手,我正在尝试将第一个查询的数据数组返回到设备屏幕,在那里我可以设置设备。我使用.get()和.then()进行了此工作,但我没有得到更新的事件,所以我已经移动到onSnapshot,似乎在查询端有数据,但无法在屏幕上获得此集合。 出现此错误。如果我删除.then(setDevices),我可以在console.log上看到数据数组 谢谢