我有一个 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/