如果我有一个数字(例如 88)并且我想在 Rails 中对主 ID 列执行 LIKE 查询以返回在 ID 末尾包含该数字的所有记录(即: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
这样,您就可以在字符串中的任意位置找到数字。
仅当您希望数字位于字符串末尾时,才使用左侧的 %
通配符。
如果您希望数字位于字符串中的任意位置,也可以在右侧使用 %
通配符。
关于sql - 如何对 PostgreSQL 主 ID 列执行 LIKE 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13654657/