ruby-on-rails - postgres 中的 Ruby/Rails 字符串大小写比较问题

标签 ruby-on-rails ruby postgresql

我有一个 CSV,其中有一个名为 name 的字符串列,其中包含“3 个月意大利面”之类的内容。

我想将其映射到现有的数据库表。数据库记录将其保存为“3 个月的面食”。

如果我尝试 Food.where(name: row['name']) 它会变成空的。因为它在“3 个月意大利面”和“3 个月意大利面”之间进行直接字符串比较。

我也试过

Food.where('name LIKE ?', '%' + "3 months pasta" + '%')

除非我将“p”大写,否则它不起作用,我该怎么做才能使字符串在两端匹配?我想做一个 row['name'].parameterize.underscore 以将其变为单一案例和单一样式,然后从数据库中执行相同的操作并匹配它们。这样做的问题是转换所有名称然后进行比较的成本很高。

我可以做些什么来实现这一目标?

最佳答案

尝试

Food.where("lower(name) = ?", row['name'].downcase)

关于ruby-on-rails - postgres 中的 Ruby/Rails 字符串大小写比较问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38724579/

相关文章:

postgresql - Postgres 查询规划器中的巨大堆 block 数

PostgreSQL - 存储多个主题的实时数据

ruby-on-rails - 使用 FactoryGirl 时不断收到 record_invalid

ruby-on-rails - 在单独的 docker 容器中反向代理 nginx 和 rails

ruby-on-rails - 如何建立HABTM关系

ruby-on-rails - Rails - 如何在 View 中将路径转换为 ​​URL?

ruby - 我如何在 minitest 中模拟一个 block ?

ruby - 你如何查看一个redis存储的lua脚本(用于调试)?

ruby-on-rails - Ruby on Rails 获取所有评论

database - 在数据库 (postgres 9.4) 中存储文档(pdf、word ...)的最佳方式