我正在尝试找出可以在 Ruby on Rails 中使用的语句,该语句执行 SQL 查询以匹配可能有或可能没有任何空格的词与也可能有或可能没有任何空格的相似词。 例如:
Matthew Jones or MatthewJones
应该匹配
Matthew Jones or MatthewJones
最佳答案
您可以使用 postgres 执行此操作 REPLACE功能:
SELECT * FROM mytable
WHERE REPLACE(username, ' ', '') = REPLACE("Matthew Jones", ' ', '')
它将同时匹配 MatthewJones
和 Matthew Jones
。
你可以在 ActiveRecord 查询中写这样的东西:
MyTable.where("REPLACE(username, ' ', '') = REPLACE('John Bob Jones', ' ', '')")
更新:
您可以使用 ILIKE
使查询不区分大小写:
User.where("REPLACE(username, ' ', '') ILIKE REPLACE(?, ' ', '')", "John Bob Jones")
关于sql - 在 Rails 和 Postgresql 中查找带空格和不带空格的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32302445/