我在Codeigniter中运行此查询
$query = $this->db->query("SELECT count(*) FROM `friends` WHERE uid=$logged_id AND who=$id")
Run Code Online (Sandbox Code Playgroud)
但桌子上的朋友们都是空的,他们内心也没什么
if($query->num_rows() > 0) {
return $query->num_rows();
}
Run Code Online (Sandbox Code Playgroud)
上面的查询返回1,当它显然应该返回0
也修改了查询
$query = $this->db->query("SELECT id FROM `friends` WHERE uid=$logged_id AND who=$id")
Run Code Online (Sandbox Code Playgroud)
按预期给我0
关于伯爵(*)的一些特别之处我不知道吗?
你检索的行数从查询,你应该是真实的检索查询结果.对于一个空表,这是count(*)给你的:
count(*)
--------
0 <- 1 row, containing the value 0.
Run Code Online (Sandbox Code Playgroud)
它(沿max()或sum()或任何聚合函数真)会给你一个数据行不管有多少表中的行实际上是(虽然不同group by可能会改变).该行将包含计数作为数据(对于空表,它将为零).
它在你选择时起作用的原因id是因为它将行从表中取出而不是计算它们并且无论如何都给你一行.
| 归档时间: |
|
| 查看次数: |
1114 次 |
| 最近记录: |