查询以 "The" 开头的记录,"The"字符串末尾移动,并在 Rails Postgres 中用逗号连接



我有一个数据集,我正在尝试按字母顺序排序。 很多记录的开头都有一个"the"。 我想查询带有"The"(即。 爱尔兰酒吧)并将"The"移动到字符串的末尾并用逗号连接(即"爱尔兰酒吧")。

我觉得这应该是一个要查询然后更新的正则表达式。 这似乎有点笨拙,必须有一个优雅的解决方案,因为它并不是一个罕见的要求。

regexp = w+[The]  (?????)
records = Record.where("title LIKE ?", regexp)
records.each do |record|
  record.title = "title witthou the the + ", The"
  record.save
end
您可以使用

它来查找以"the"开头的记录(编辑为不区分大小写):

records = Record.where("lower(title) LIKE :prefix", prefix: "#{the}%")

然后使用 sub 替换"the",然后更新记录:

records.each do |r|
  r.title = r.title.sub(/the/i, "")
  r.title = "#{r.title}, The"
  r.save
end

相关内容

最新更新