0

我正在尝试将数据从 MySQL DB 获取到 Rstudio-server。我的行为就像

mydb = dbConnect(MySQL(), user='user', password='password', dbname='dbname', host='localhost')
query <- stri_paste('select sellings.updated_at AS Up_Date, concat(item_parameters.title, " ", ad_attributes.int_value) AS Class, CONCAT(geos.name, " ", geos.kind) AS place, geos.lon, geos.lat, sellings.price AS price, ((geo_routes.distance*2/1000 + 100)) AS delivery_cost FROM sellings, users, item_parameters, ad_attributes, geos, geo_routes WHERE users.encrypted_password!="" && item_parameters.title="Класс" && sellings.price IS NOT NULL && ad_attributes.int_value IS NOT NULL AND users.id=sellings.user_id AND item_parameters.id=ad_attributes.item_parameter_id AND sellings.id = ad_attributes.ad_id AND sellings.geo_guid = geos.guid AND geos.routable_guid = geo_routes.src_guid AND geo_routes.distance = (SELECT geo_routes.distance FROM geo_routes, geos WHERE geos.guid = sellings.geo_guid AND geo_routes.src_guid = geos.routable_guid AND geo_routes.dst_guid = (SELECT geos.routable_guid FROM geos WHERE geos.name = "Воронеж" && geos.kind = "г")) ORDER BY Up_Date;')
rs = dbGetQuery(mydb, query)

我得到一个空的数据框。但是当我对我的本地数据库做同样的事情时,一切都很好。该查询需要相当长的时间,大约 3 分钟,但它工作正常。此外,相同的查询可以直接从 MySQL 的命令行运行。在服务器上,大约需要 4 秒。服务器的操作系统是 Debian 7,本地机器的操作系统是 Win 8。知道吗?

4

2 回答 2

0

有时从命令行查询时,默认模式已在前一个命令中设置。此命令不会延续到 R,因此从命令行到 R 会话的完全相同的查询可能不起作用。也许检查数据库名称。

于 2015-02-18T01:20:55.077 回答
0

在您的 SQL 查询中插入以下语句

SET NOCOUNT ON
SET ANSI_WARNINGS OFF

它对我有用

于 2021-10-21T00:50:04.547 回答