如果我有一个数字(例如 88),并且我想在 Rails 中对主 ID 列执行 LIKE 查询,以返回在 ID 末尾包含该数字的所有记录(IE:88、288 等),我该怎么做呢?下面是生成结果的代码,在 SQLLite 中运行良好:
@item = Item.where("id like ?", "88").all
在 PostgreSQL 中,我遇到了这个错误:
PG::Error: ERROR: operator does not exist: integer ~~ unknown
我该怎么做呢?我尝试过将数字转换为字符串,但这似乎也不起作用。
基于埃尔文的回答:
这是一个非常古老的问题,但万一有人需要它,有一个非常简单的答案,使用::text
cast:
Item.where("(id::text LIKE ?)", "%#{numeric_variable}").all
这样,您就可以在字符串中的任何位置找到该数字。
Use %
仅当您希望数字位于字符串末尾时才将通配符添加到左侧。
Use %
如果您希望数字位于字符串中的任何位置,则也可以在右侧使用通配符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)