У нас есть база данных и несколько столбцов имеют бит типа. При запросе их с помощью пакета RMySQL возвращаются неверные результаты. Для того, чтобы воспроизвести, в SQL строке:RMySQL неправильно запрашивает столбец с типом бит
CREATE TABLE suppliers
(aId varchar(10) not null,
aBit bit not null
);
INSERT INTO suppliers (aId, aBit) VALUES ("First", 0);
INSERT INTO suppliers (aId, aBit) VALUES ("Second", 1);
INSERT INTO suppliers (aId, aBit) VALUES ("Third", 0);
INSERT INTO suppliers (aID, aBit) VALUES ("Fourth", 1);
можно затем запустить:
select * from suppliers
и я получаю:
+--------+------+
| aId | aBit |
+--------+------+
| First | |
| Second | ☺ |
| Third | |
| Fourth | ☺ |
+--------+------+
4 rows in set (0.00 sec
Отлично, но если я пытаюсь запросить таблицу в R:
library(RMySQL)
mydb = dbConnect(MySQL(), user='root', password='password1', dbname='test', host='localhost')
query = dbSendQuery(mydb,"select * from suppliers")
data = fetch(query, n=-1)
summary(data)
На моей машине этот продукт : спам,
aId aBit
Length:4 Min. :0
Class :character 1st Qu.:0
Mode :character Median :0
Mean :0
3rd Qu.:0
Max. :0
Как вы можете видеть все ABIT клетки в «данные» установлены в 0. Любой знает, почему это происходит, и потенциальные обходные работы? Заранее спасибо
Теперь это исправлено в версии dev, но см. Https://github.com/rstats-db/RMySQL/issues/20 для получения более подробной информации. – hadley