【问题标题】:Using sql CONTAINS in a Rails 3 .where statement?在 Rails 3 .where 语句中使用 sql CONTAINS?
【发布时间】:2013-09-11 12:18:02
【问题描述】:

我的模型中有以下语句:

.where("ClinicalText LIKE 'Paid by PET HEALTH' AND PVID != 44444")

我需要找到ClinicalText 包含以下之一的所有记录:

Paid by PET HEALTH
Paid by PET HEALTH(T)
Paid by PET HEALTH (T)

我认为我的 like 声明将涵盖所有选项,因为它们都包含“由 PET HEALTH 支付”。

看来我错了,现在需要找到正确的语法。

这可能吗?

【问题讨论】:

    标签: mysql sql ruby-on-rails-3 model


    【解决方案1】:

    在 MySQL 中,您应该能够使用 '%' 通配符。

    .where("ClinicalText LIKE 'Paid by PET HEALTH%' AND PVID != 44444")
    

    当然,这将得到以字符串“由 PET HEALTH 支付”开头的任何内容(取决于您的 MySQL 设置,这可能区分大小写,也可能不区分大小写。)

    编辑:此答案仅使用一个通配符来限制与以必要字符串开头的字符串的匹配。如果您想匹配值中的任何位置,那么也可以在前面添加一个“%”。

    【讨论】:

      【解决方案2】:

      LIKE 需要通配符

      .where("ClinicalText LIKE '%Paid by PET HEALTH%' AND PVID != 44444")

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-16
        • 2017-01-27
        • 1970-01-01
        • 2018-07-23
        相关资源
        最近更新 更多