0

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

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

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

工作解决方案

我可以做这样的事情

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

更好的解决方案?

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

4

1 回答 1

0

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

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

于 2012-11-14T14:33:38.247 回答