Mysql
 sql >> база данни >  >> RDS >> Mysql

Преименуване на колони в MySQL select оператор с R пакет RJDBC

Попаднах на същия разочароващ проблем. Понякога AS ключова дума би имала предвидения ефект, но друг път не би. Не успях да идентифицирам условията, за да го накарам да работи правилно.

Кратък отговор: (Благодаря на Simon Urbanek (поддръжник на пакети за RJDBC), Yev и Sebastien! Вижте Дългия отговор. ) Едно нещо, което може да опитате е да отворите вашата JDBC връзка с помощта на ?useOldAliasMetadataBehavior=true във вашия низ за връзка. Пример:

drv <- JDBC("com.mysql.jdbc.Driver", "C:/JDBC/mysql-connector-java-5.1.18-bin.jar", identifier.quote="`")
conn <- dbConnect(drv, "jdbc:mysql://server/schema?useOldAliasMetadataBehavior=true", "username", "password")
query <- "SELECT `a` AS `b` FROM table"
result <- dbGetQuery(conn, query)
dbDisconnect(conn)

Това свърши работа за мен! Вижте повече подробности, включително предупреждения, в Дългия отговор

Дълъг отговор: Опитах всякакви неща, включително създаване на изгледи, промяна на заявки, използване на оператори JOIN, НЕ използване на оператори JOIN, използване на оператори ORDER BY и GROUP BY и т.н. Никога не успях да разбера защо някои от моите заявки успяха да преименуват колони а други не бяха.

Свързах се с поддържащия пакет (Симон Урбанек.) Ето какво каза той:

След това той ми препоръча да се уверя, че имам най-новия JDBC драйвер за MySQL. Имах най-новата версия. Това обаче ме накара да се замисля „може би това е грешка с драйвера на JDBC“. И така, потърсих в Google:mysql jdbc driver bug alias .

Най-добрият резултат за тази заявка беше запис в bugs.mysql.com . Yev, използвайки MySQL 5.1.22, казва, че когато надстрои от версия на драйвера 5.0.4 до 5.1.5, псевдонимите на колоните му спряха да работят. Попитан дали е грешка.

Себастиен отговори:"Не, това не е грешка! Това е документирана промяна в поведението във всички следващи версии на драйвера." и се предлага използването на ?useOldAliasMetadataBehavior=true , цитирайки документация за JDBC драйвера .

Предупреждение Лектор: Документацията за драйвера на JDBC гласи, че

Нямах време да проуча напълно какво означава това. С други думи, не знам какви са всички последици от използването на useOldAliasMetadataBehavior=true са. Използвайте на свой собствен риск. Някой друг има ли повече информация?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не мога да избера MySQL от Изберете източник на данни във Visual Studio 2013

  2. Изпратете MySQL blob съдържание като json отговор

  3. Размер за съхранение на IPv4, IPv6 адреси като низ

  4. Търсене на думи със скраб с заместващи знаци

  5. Масиви от множество форми за качване, качване на изображения и след това вмъкване в база данни (PHP, MySQL)