DBConnectとRMySQLパッケージを使用して私の会社のデータベースにRで接続しましたが、Rでクエリを実行しようとしています。エラー。RでMySQLを使用するとエラーが発生しました
USE mydb;
SELECT @theDate := '2017-05-03';
SELECT
@theDate AS today,
a.user_id AS user_id,
...
...
これらは、最初の数行です:クエリは、したがって、それはここでR.に動作しないことにフラストレーションがSQLクエリの抜粋ですが、私が日々使用のMySQL Workbenchのアプリで動作しますクエリ、そしてまた、私は次のエラーが表示さR.でエラーの原因となったクエリの一部:私はより再現性のコードを提供することはできません
my_query = " USE mydb;
SELECT @theDate := '2017-05-03';
SELECT
@theDate AS today,
a.user_id AS user_id,
...
... "
my_db = dbConnect(MySQL(), ...)
requested_query = dbSendQuery(my_db, my_query)
Error in .local(conn, statement, ...) :
could not run statement: You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use
near 'SELECT
@theDate AS today,
a.user_id AS user_id,' at line 3
申し訳ありませんが、「それは、会社のデータベースに接続する伴うだろうと私ができますデータベース情報を共有しないでください。
最後のコメント - 私はこの行がSELECT @theDate :: = '2017-05-03'と関係していると信じています。ライン。このクエリは私の同僚ではなく私の同僚によって書かれたもので、前にクエリでこのように使用されていた2つのselect文を見たことがありませんでした。 MySQL Workbenchアプリケーションでは、@theDateは本質的に '2017-05-03'に設定された変数です。クエリによって返されるテーブルの最初の列はすべて '2017-05-03'です。
私が言ったように、クエリはMySQL Workbenchでは動作しますが、Rでは動作しません。どんな提案も感謝しています!
ありがとうございます!
EDIT - これは、SQLで設定変数がどのように機能するかを理解しようとすると、さらに問題になることを認識しています。私が言ったように私は前にこれを見ていないが、最初のSELECTクエリは変数を設定しているし、2番目のSELECTクエリはその変数を使用しています。これは許可されていますか?私はなぜそれがMYSQLのワークベンチで許可されているが、Rではないのだろうか...まだ不満です
あなたは()関数dbsendqueryで2つのSQL文を実行することはできますか? – Shadow
私はあなたの質問に答えることができませんが、RODBCパッケージ[https://cran.r-project.org/web/packages/RODBC/index.html]をチェックしてください。これはあなたの問題を解決するかもしれません。クエリの結果を受け取ろうとすると問題が発生し、データフレームだけを取得できました。しかし、データフレームが少し大きかったら、すべての行がRにロードされたわけではありません。しかし、このパッケージは私の問題を解決しました。今までMySQL Workbenchで実行されるすべてのクエリはR – sanyi14ka