我使用Ruby On Rails中的一些ActiveRecord获得了postgresql查询
my_table.location = ActiveRecord::Base.connection.execute("UPDATE my_table SET location = ST_SetSRID(ST_MakePoint(my_table.longitude, my_table.latitude), 4326)::geography")
我想将变量放入我的查询中,因为我不想使用数据库中的列经度和纬度,而是使用包含经度和纬度值的一些变量。
my_table.location = ActiveRecord::Base.connection.execute("UPDATE my_table SET location = ST_SetSRID(ST_MakePoint((?), (?), 4326)::geography"), longitude, latitude)
我找不到让它发挥作用的方法,但你应该理解背后的想法。是否存在一些在我的查询中使用变量的方法?
答案 0 :(得分:0)
是的,你可以这是我的一个查询的例子,我在我的SQL查询中使用了用户变量
@from_date = Time.parse(@from).to_date.beginning_of_day
@till_date = Time.parse(@to).to_date.end_of_day
sql = "select abc.sss,im.lat,
im.long from users as rq JOIN images as
im ON rq.id= im.imageable_id where rq.created_at
BETWEEN '#{@from_date}' AND '#{@till_date}' ;"
response = ActiveRecord::Base.connection.execute(sql)
答案 1 :(得分:0)
这是针对您的用例的解决方案,我认为需要检查@IndexedEmbedded
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinTable(name = "data_tags", joinColumns = @JoinColumn(name = "data_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "tag_id", referencedColumnName = "id"))
private List<TagEntity> tags;
:
longitude.present? and latitude.present?