mysql - Ruby on Rails .find_by_sql 引用问题

标签 mysql ruby-on-rails ruby find-by-sql

我在以下 MySQL 语句中使用日期变量时遇到问题。日期变量包含一个表示日期的字符串。

personal = Event.find_by_sql ["SELECT * 
                                 FROM events 
                                WHERE DATE(start) = ?
                                  AND HOUR(start) = ? 
                                  AND user_id = ?;", date, hour, user]

以下是在数据库上运行的结果查询。

SELECT * 
  FROM events 
 WHERE DATE(start) = ''2015-02-27'' 
   AND HOUR(start) = 9 
   AND user_id = 123456789;

在日期字符串周围添加了一组额外的引号,这会导致错误。有什么办法可以去掉多余的一对引号吗?

最佳答案

您是否尝试过使用where

personal = Event.where("DATE(start) = ?", date.to_date).
  where("HOUR(start) = ?", hour).
  where(user_id: user)

关于mysql - Ruby on Rails .find_by_sql 引用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28768687/

相关文章:

mysql - 使用多个连接优化 SQL 查询。需要关于快速有效地检索数据的技术建议

php - 1 选择查询根据 2 列对行进行排序?

ruby-on-rails - 通过 Rails Controller 发送下载的文件

javascript - Sprockets::FileNotFound:在 Rails 应用程序中找不到类型为 'jquery' Heroku 的文件 'application/javascript'

mysql - 想要向现有表添加一个外键列

java - 如何使用 Join 定义 JPA 存储库查询?

ruby-on-rails - rails : Render view from outside controller

ruby-on-rails - Rails 4 不同 View 的片段缓存

ruby - 遍历数组的每个元素,除了第一个

ruby - {|_, e| e.length>1} underScore ( _ ) 在 Ruby 中有什么用?