如何使用Rails中的LIKE功能忽略符号

时间:2016-02-15 15:12:26

标签: sql ruby-on-rails postgresql

我知道LIKE是一个SQL命令,所以我也会添加SQL

基本上我有这个命令

gigurldb = Gigtable.where('eventtitle ILIKE ? AND eventdoortime = ? ', "%#{tmname}%", "#{tmdate}").first

tmname通过名称

会发生什么
Granny Smiths - Apples

Gigtable eventtitle保存在Granny Smiths : Apples 列中

LIKE

现在ILIKE/dev/null方法无法接听。

我有什么想法可以让这项工作得以实现?

由于

2 个答案:

答案 0 :(得分:0)

ILIKE代码仅对非区分大小写的操作有帮助。但在这种情况下,ILIKE不接受替换 - :。 ILIKE仅在Granny Smiths - Applesgranny smiths - Apples方案匹配时才有效。请点击链接了解更多详情 Postgres SELECT a concat field and ILIKE it in Rails

答案 1 :(得分:0)

如果问题中的问题字符始终是冒号或连字符,则可以替换冒号&使用通配符在搜索字符串中连字符。

gigurldb = Gigtable.where('eventtitle ILIKE ? AND eventdoortime = ? ', "%#{tmname.gsub(/[\-\:]/,"%")}%", "#{tmdate}").first

这将生成类似

的sql
eventtitle ILIKE '%Granny Smiths % Apples%'

将捕获这两种情况。