首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails - Chaining中的SQL "AND“

Rails - Chaining中的SQL "AND“
EN

Stack Overflow用户
提问于 2009-08-21 21:17:11
回答 2查看 324关注 0票数 0

我不明白为什么SQL不喜欢我的查询:

代码语言:javascript
复制
@unreadmessages = Message.find(:all, :conditions => ["receiver_id = ? AND receiver_archived = ? AND read = ?", self.current_user, "No", "No"])

还有一种不同的编写方式,但我希望保持风格一致(我想这一种方式避免了SQL注入)。

感谢您的投入!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-21 21:40:29

"Read“是MySQL中的reserved word。我建议将该列重命名。或者,您也可以在每次引用它时将其放入反字符中。

代码语言:javascript
复制
@unreadmessages = Message.find(:all, :conditions => ["receiver_id = ? AND receiver_archived = ? AND `read` = ?", self.current_user, "No", "No"])

不过,我建议您重命名。

票数 4
EN

Stack Overflow用户

发布于 2009-08-21 21:44:41

我假设您并没有真正在数据库中存储单词"No“来跟踪true/false。如果您使用的是布尔值或位,请尝试以下方法。

代码语言:javascript
复制
@unreadmessages = Message.find(:all, :conditions => ["receiver_id = ? AND receiver_archived = ? AND read = ?", self.current_user.id, false, false])

编辑:看看ryanb是怎么说"read“的,如果这是一个新的应用程序,并且您可以控制数据库模式的样子,请考虑我对您的列所说的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1314280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档