在Ruby on Rails查询中使用下划线转义字符

时间:2011-04-12 01:06:11

标签: mysql ruby-on-rails

我要做的是编写如下查询:

Foo.where("bar LIKE 'bam\_%'")

这个想法是,这会返回包含字符串的bar所有的行,以'bam_'开头,然后是不确定的长度。我已经在MySQL工作台中尝试了这个纯MySQL查询,它似乎按预期工作。但是,当我在RoR中执行此操作时,它似乎完全忽略了转义字符,并将下划线视为它真正的通配符。有没有办法在Rails中写这个,我可以在查询中包含下划线?感谢。

1 个答案:

答案 0 :(得分:1)

反斜杠是Ruby字符串中的转义字符,因此\_表示将_视为文字。由于_无论如何都被视为文字,因此除了将\视为不存在之外,它什么都不做。实际在Ruby字符串给出的字符串中使用反斜杠的方法之一是使用另一个反斜杠(例如"bar LIKE 'bam\\_%'")来逃避它。

相关问题