我正在努力寻找一个命令,使我能够识别数组中包含特定单词的那些记录,并想知道是否有人可以指出我正确的方向。
基本上,我在一列中有姓名,在另一列中有地址。 我现在想将数据限制为某个城市的人,因此例如,我想显示所有居住在伦敦的人 - 即"伦敦"必须包含在他们的地址字符串中。
是否可以使用 WHERE 和 LIKE 函数以某种方式执行此操作?
可以使用 LIKE 关键字来获取此类信息,但如果不使用单个字段来存储地址,而是使用多个字段,您会更好:
Users Addresses Countries
------------- ------------------- -------------
user_id address_id country_id
address_id country_id titile
full_name city_id
street_and_number
单个国家/城市有很多地址。你可以有多个人住在同一个城市,甚至有相同的街道地址。
无论如何,这将是组织数据的更好方法,特别是因为LIKE真的很慢。
附言 脚手架用于快速原型制作,而不是用于生产代码。
做这样的事情:
def SomeModel < ActiveRecord::Base
scope :contains_city,
lambda { |city| where("some_models.address LIKE ?","%"+city+"%" ) }
end
#Usage:
records = some_instance_of_model.contains_city "London"