【问题标题】:Search from postgresql and filtered by mysql从 postgresql 中搜索并由 mysql 过滤
【发布时间】:2012-08-02 16:13:07
【问题描述】:

我在处理两个不同的数据库时遇到问题。 Postgresql 和 Mysql。

我在我的网站上有一个简单的搜索,可以搜索来自特定位置和特定条件的出租物业。

在我的 Postgresql 中,一张表格保存着出租物业的坐标和半径,而在我的 Mysql 中,一张表格保存着床、房间、价格等属性。

我可以正确检索数据。但是在使用分页时。第 1 页有 5 行,第 2 页有 10 行,第 3 页有 20 行等等。顺便说一句,每页最多有 25 行。

要知道问题,让我们有一个场景:

lat = 14.00000
long = 121.00000
rad = 50000

当我向 postgresql 查询时...

SELECT * FROM postgretable WHERE ST_DWithin(lat_long,ST_GeomFromText('POINT(long lat)', 4326), rad)

我总共有 25 行。 现在我希望使用 mysql 数据库中可以找到的其他条件对其进行过滤。

其他条件:

Beds = 2
Bathrooms = 5
price 1000

SELECT * FROM mysqltable WHERE id = $result['id'] AND beds = 2,Bathrooms = 5, price = 1000

当使用来自 postgresql 的数据从 mysql 执行时 我得到了 6 个结果。


我想不出任何办法来解决这个问题。使用数组还是什么? 我知道如果我使用单个数据库并且只使用 LEFT JOIN 或任何类似的,这可以正确完成。但我正在处理两个数据库。

还有其他方法可以解决这个问题吗?谢谢

【问题讨论】:

  • 如果您对数据库结构有任何控制权。为什么不将所有这些数据都放在一个数据库服务中?
  • 你为什么使用 2 个不同的数据库?
  • 我可以说使用两个数据库并没有什么问题,而且我当然已经在 MSSQL 下将来自两个不同服务器上的两个数据库的数据...但是两个不同的数据库系统?嗯。
  • 请显示所涉及的表定义,最重要的是您正在使用的选择语句。
  • @RobertH - 与 mysql a_horse_with_no_name 相比,在 postgresql 中使用几何搜索要快得多 - 我正在使用这种语句从某个位置查询所有属性。 “SELECT * FROM postgretable WHERE ST_DWithin(lat_long,ST_GeomFromText('POINT(long lat)', 4326), radius)” - 这将返回所有属性。现在我将使用 mysql 使用结果的 foreach 过滤它们“SELECT * FROM mysqltable WHERE id = $result['id'] ANDbeds = 2,baths = 2, price = 1000”——如果接受,则添加到最终数组中,这将显示在页面上,例如最后数组有 6 行。

标签: mysql postgresql search


【解决方案1】:

您可能要考虑这个问题的答案:

connect mysql to postgresql

(如果我再添加,我会抄袭)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多