gpt4 book ai didi

ruby-on-rails - Rails 3.2 - 提取记录的查询无法正常工作 - 此语法是否正确?

转载 作者:行者123 更新时间:2023-11-29 12:22:07 26 4
gpt4 key购买 nike

我有 2 个模型。一个叫做Header,另一个叫做Alarm

Alarm 有一个名为 keyword 的列。标题有 4 列,分别称为 title_en、title_es、title_eu、title_fr

我想将给定 Header 的这 4 列 与每个 Alarmkeyword 字段进行比较>。这应该提取以某种方式匹配任何标题的 Alarms

我构建的查询(见下文)以一种奇怪的方式工作。我试过一些假数据:

Alarm1.keyword = 'foo'
Header1.title_es = 'foo'
Header2.title_en = 'foo'
Header3.title_en = 'foo'

此查询仅返回带有 Header2 和 Header3 的 Alarm1。为什么不适用于 Header1?任何与 title_es 有关的事情。

@header = Header.find(somegivenheader)
@alarms = Alarm.where((["CAST(alarms.keyword as varchar(255)) LIKE ?", @header.title_en] || ["CAST(alarms.keyword as varchar(255)) LIKE ?", @header.title_es] || ["CAST(alarms.keyword as varchar(255)) LIKE ?", @header.title_fr] || ["CAST(alarms.keyword as varchar(255)) LIKE ?", @header.title_eu]))

非常感谢任何帮助。谢谢

最佳答案

我认为那些 where 子句并没有像您期望的那样被组合在一起。通过将 .to_sql 附加到 Alarm.where(...) 来查看控制台中生成的 SQL。

或者,尝试类似的方法:

Alarm.where("keyword in (?)", [@header.title_es, @header.title_fr, @header.title_eu])

关于ruby-on-rails - Rails 3.2 - 提取记录的查询无法正常工作 - 此语法是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16039901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com