我有一个新餐馆列表,我想使用电话号码将它们与餐馆数据库进行核对。电话号码的问题在于它们在数据库中具有不同的格式(即123-345-6789
或(123)-456 8988
)。
到目前为止,我已经为手机创建了一个索引,以便快速搜索它们。我还删除了新餐厅的电话号码,以便它们只包含数值 (0-9)。
现在,我想在比较之前删除数据库的数字,以便严格比较数字。
#strip the phone of non-numeric values and spaces
formatted_phone = SunspotHelper.sanitize_term(pr.phone).gsub(/\s+/, "")
Restaurant.where(contact_phone: formatted_phone).each do |r|
#irrelevant code here
end
上面代码的问题是contact_phone(来自数据库)将采用非剥离格式。到目前为止,我的研究使我相信我必须使用类似的东西REGEXP_LIKE
,但我不太确定如何使用 Rails 来实现它。我不想更新数据库 - 我只是想剥离数字进行比较,同时仍将原始格式保留在数据库中。
在与 进行比较之前,如何从数据库中去除电话号码contact_phone
的非数字值formatted_phone
?