使用SQL查询搜索相似的地址

下午好

我需要使用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,我只会得到一个

如何制定查询以获取两个记录?

Sebastian Palma的图片

您可以使用正则表达式执行不区分大小写的过滤器:

SELECT "properties".* FROM "properties" WHERE (street_address ~* '123|happy|st')

为此,您需要拆分params[:address]并使用管道“ |”将它们加入:

Property.where("street_address ~* ?", "123 happy st".split.join('|'))

请注意,这与两个示例都匹配,但是作为正则表达式,它可以匹配其他任何内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章