count(*)和 count(1)

文章讨论了SQL中COUNT(*)和COUNT(1)函数在统计行数时的区别。COUNT(*)会包括NULL值行,而COUNT(1)因常量优化可能在性能上占优。虽然COUNT(*)是标准语法且更通用,但在关注性能时,COUNT(1)可作为选择。若仅需统计行数而不关心NULL,COUNT(1)是高效选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

COUNT(*)COUNT(1) 都可以用来统计行数,但是有以下区别:

  • COUNT(*) 会统计所有行,包括其中存在 NULL 值的行。
  • COUNT(1) 统计的是第一个字段(1),因为这个值在每一行中都存在,所以实际上也是统计了所有行。但是由于不需要检查每一行的数据,因此在某些情况下,COUNT(1) 的性能可能略高于 COUNT(*)

总之,如果你只是想要统计行数,而不用关心 NULL 值或其他列的值,那么建议使用 COUNT(1)

COUNT(*) 是 SQL 标准语法并且在大多数情况下都可以正常使用,包括处理包含 NULL 值的行。所以在实际使用中,如果你需要统计某个表中的所有行数,那么使用 COUNT(*) 是较为保险和稳妥的做法。但是如果你关心性能,或者只想统计非空行的数量,那么可以考虑使用其他更高效或更精确的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值