【问题标题】:Find records by char on specific field's position - ActiveRecord在特定字段的位置上按字符查找记录 - ActiveRecord
【发布时间】:2012-11-14 13:41:38
【问题描述】:

假设我们有一个表 banners 带有伪位数组(位保存为字节,我知道 :) 我用它们来存储 4 个设置。

| name    | targeting |
+---------+-----------+
| banner1 | 1001      |
| banner2 | 0010      |

我想在表 banners 中搜索,并在定位属性的第 3 位找到所有带有“1”的记录。

工作解决方案

我可以做这样的事情

banners = []
Banner.all do |banner|
  banners << banner if banner.targeting[2] == "1"
end

更好的解决方案?

用SUBSTRING编写自己的SQL查询会更好,或者你有什么建议?

【问题讨论】:

    标签: mysql ruby-on-rails ruby activerecord


    【解决方案1】:

    尝试在 mysql 中使用正则表达式。很确定语法是正确的,但我还没有验证:

    Banner.where("定位 REGEXP '^(2)' = '1'")

    【讨论】:

    • 嗯。您确定 REGEXP '^(2)' 正在测试第二个位置为“1”吗?
    • 它是从零开始的,所以 2 是测试位置 3。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    相关资源
    最近更新 更多