我需要使用SQL查询查找相似的地址。我正在使用Ruby on Rails。
这是我正在使用的查询:
properties.where('lower(street_address) LIKE ?', "%#{params[:address].downcase}%")
我有两个具有以下地址的属性:
123 Happy st
123 East Happy st
搜索时(为params[:address]
)123 happy st
,我只会得到第一个值。
如果我这样做east happy st
,我只会得到一个
如何制定查询以获取两个记录?
您可以使用正则表达式执行不区分大小写的过滤器:
SELECT "properties".* FROM "properties" WHERE (street_address ~* '123|happy|st')
为此,您需要拆分params[:address]
并使用管道“ |”将它们加入:
Property.where("street_address ~* ?", "123 happy st".split.join('|'))
请注意,这与两个示例都匹配,但是作为正则表达式,它可以匹配其他任何内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句