Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 仅获取数组日期的唯一值_Sql_Ruby On Rails_Ruby - Fatal编程技术网

Sql 仅获取数组日期的唯一值

Sql 仅获取数组日期的唯一值,sql,ruby-on-rails,ruby,Sql,Ruby On Rails,Ruby,我有困难,因为我认为这将是一个简单的任务。。。 我需要删除数组的重复值,例如,有3次2018-02-20 13:48:44,我只需要这些值中的1次 MyTab = [#<Poll id: nil, created_at: "2018-02-20 13:47:15">, #<Poll id: nil, created_at: "2018-02-20 13:48:44">, #<Poll id: nil, created_at: "2018-02-20 13:48:44

我有困难,因为我认为这将是一个简单的任务。。。 我需要删除数组的重复值,例如,有3次2018-02-20 13:48:44,我只需要这些值中的1次

MyTab = [#<Poll id: nil, created_at: "2018-02-20 13:47:15">, #<Poll id: nil, created_at: "2018-02-20 13:48:44">, #<Poll id: nil, created_at: "2018-02-20 13:48:44">, #<Poll id: nil, created_at: "2018-02-20 13:48:44">, #<Poll id: nil, created_at: "2018-02-20 14:25:14">, #<Poll id: nil, created_at: "2018-02-20 14:25:14">, #<Poll id: nil, created_at: "2018-02-20 14:25:14">, #<Poll id: nil, created_at: "2018-02-20 14:32:38">, #<Poll id: nil, created_at: "2018-02-20 14:36:42">, #<Poll id: nil, created_at: "2018-02-20 14:36:42">, #<Poll id: nil, created_at: "2018-02-20 14:40:16">, #<Poll id: nil, created_at: "2018-02-20 15:30:15">, #<Poll id: nil, created_at: "2018-02-20 15:30:15">, #<Poll id: nil, created_at: "2018-03-06 10:24:25">, #<Poll id: nil, created_at: "2018-03-06 10:24:25">] 
谢谢你的回答:)


Z.

可能较慢;但这应该是有效的:


MyTab.uniq{x|Time.parse(x.created_at).to_i}

如果可以直接从模型重写查询,我建议直接在模型中执行逻辑

Poll.select(:created_at).where("#{query_conditions}").distinct
如果不是,我建议@ben的答案。

find\u by\u sql[“从您的表名称中选择DISTINCT created\u at”] 或 我的标签,压扁!
注意-这将或使用唯一值重写MyTab数组编辑:好的,我想我知道如果我尝试使用

a=[“第一”],[“第二”],[“第一”].uniq
它正在工作,因此我将更改为使用这种方式的数组。

我看不出您的原始代码无法工作的任何原因。您是否知道
uniq
返回一个新数组,而不修改原始数组?使用
uniq如果您想修改原始的。Rails 5中没有ActiveRecord::QueryMethods的
uniq
方法。假定默认情况下在
处创建的
是一个时间戳,您确定这是您真正需要的吗?您不太可能在完全相同的毫秒内创建两个记录。是的,我提交表单时得到的就是这个数组。我需要确保回答我表格的人数与回答这个问题的人数不同…@Sox-,这与在
创建的的唯一性有什么关系?如果我不能以任何其他方式来做,我会尝试一下。这是肯定的;否则我就不会回答了
Poll.select(:created_at).where("#{query_conditions}").distinct