8

从控制台对字段进行快速通配符搜索的最简单方法是什么?我不在乎防范 SQL 注入。

我正在使用PostgreSQL

title使用包含“emerging”的字符串进行搜索

这可行,但有点麻烦。好奇是否有速记?

Product.where("title @@ :q", q: "emerging")

在 Rails 4 中同样繁琐但似乎不再适合我:

Product.where("title ILIKE ?", "emerging")
Product.where("title ilike :q", q: "emerging")

我想我正在寻找类似的东西Product.where(title: "*emerging*")

4

2 回答 2

16

这应该这样做:

word = 'emerging'
Product.where('title ILIKE ?', "%#{word}%")
  • ILIKE 使搜索对大小写不敏感(PostgreSQL 功能!)
  • “%”通配符使搜索匹配每个标题包含“单词”的产品,其中包含(或不包含)之前和/或之后的内容。
于 2013-10-25T15:35:32.973 回答
4

使用LIKE,像这样:

Product.where('title LIKE ?', '%emerging%')
于 2013-10-25T15:36:57.450 回答