当前位置:  开发笔记 > 数据库 > 正文

如何找到查询结果的大小

如何解决《如何找到查询结果的大小》经验,为你挑选了1个好方法。

我在rails中有以下查询:

records = Record.select('y_id, source')
                .where(:source => source, :y_id => y_id)
                .group(:y_id, :source)
                .having('count(*) = 1')

如果我得到以下输出puts records
[#, #]

看起来输出数组中有2个元素。但是当我尝试做时,records.size我得到:
{[10000009, "XYZ"]=>1, [10000070, "XYZ"]=>1}

当记录是具有2个元素的数组时,为什么不records.size打印2group by查询结果是否由于某些原因而有所不同?

我应该怎么做才能得到 records

Ben Hawker.. 5

我可能走错了路,但我认为问题在于.size工作方式。

大小会自动尝试确定是致电.count还是.length。它们的行为方式如下:

.count执行一个SQL COUNT

.length计算所得数组的长度

但是,偶尔.size会返回哈希值(因为它决定使用.count

因此,您的解决方案可能是使用.length它将返回整数的方法。



1> Ben Hawker..:

我可能走错了路,但我认为问题在于.size工作方式。

大小会自动尝试确定是致电.count还是.length。它们的行为方式如下:

.count执行一个SQL COUNT

.length计算所得数组的长度

但是,偶尔.size会返回哈希值(因为它决定使用.count

因此,您的解决方案可能是使用.length它将返回整数的方法。

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有