此查询不会产生错误,但我很确定 EXTRACT(EPOCH FROM relationships.created_at)
没有按预期执行。
last_check = @user.last_check.to_i
@new_relationships = User.select('"rels_unordered".*')
.from("(#{@rels_unordered.to_sql}) AS rels_unordered")
.joins("
INNER JOIN relationships
ON rels_unordered.id = relationships.character_id
WHERE EXTRACT(EPOCH FROM relationships.created_at) > #{last_check}
GROUP BY relationships.created_at
ORDER BY relationships.created_at DESC
")
我如何准确检查 EXTRACT(EPOCH FROM relationships.created_at)
正在生成什么?服务器日志不显示它,它们只是重复查询。 (至少日志确实显示 #{last_check}
正确地生成了一个像 1471364015 这样的数字,这就是为什么我认为问题出在纪元代码上。)
最佳答案
我会去 mysql 试试看:
SELECT EXTRACT(EPOCH FROM relationships.created_at) FROM relationships limit 0,1;
看看你会得到什么样的答案。如果需要,更改以上内容以指定特定记录。
更大的问题可能是EPOCH参数;我不确定它是否有效。请参阅 EXTRACT 的 mySQL 引用及其 parameters .
关于mysql - Rails 如何检查 sql 查询生成的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38981057/