Как передать строковую переменную/аргумент в mysql с помощью RMYSQL

У меня есть строковая переменная с именем time, которая содержит значение времени, например:

time = "2015.03.04"; 

Я хотел бы передать эту переменную в mysql для получения информации

 rs <- dbSendQuery(mydb, "SELECT * FROM TIMETABLE WHERE Time LIKE",time," 13:30%");

Теперь он печатает следующую ошибку:

Error in mysqlExecStatement(conn, statement, ...) : 
  unused arguments ("2015.03.04", " 13:30%")

и теперь это то, что я получил до сих пор

sqlStatement <- paste("SELECT * FROM TIMETABLE WHERE Time LIKE '",time," 13:30%'")
sqlStatement

Результат:

> sqlStatement
[1] "SELECT * FROM TIMETABLE WHERE Time LIKE ' 2015.03.04  13:30%'"

Я не могу избавиться от пробела между ' и 2015


person greenheadprogrammer    schedule 27.03.2015    source источник
comment
Может быть, вам следует удалить символ % в конце вашего запроса? 13:30%");   -  person Azat    schedule 27.03.2015
comment
Мне нужен % для сопоставления, даже если я его удаляю, он все равно печатает ту же ошибку без % @_@, в любом случае спасибо за ответ :) продолжайте ждать ответа   -  person greenheadprogrammer    schedule 27.03.2015
comment
А как насчет пробелов после LIKE? Если вы подтвердите это, вы получите строку LIKE2015.03.04, которая, вероятно, не будет правильно проанализирована   -  person Azat    schedule 27.03.2015


Ответы (2)


думаю, я хотел бы ответить на это сам, спасибо за всю помощь!

мое решение кажется немного глупым, но решило проблему :)

time ="'2015.03.05";
sqlStatement <- paste("SELECT * FROM TIMETABLE WHERE Time LIKE ",time,"13:30%'")
person greenheadprogrammer    schedule 27.03.2015

Ваша проблема вызвана paste(). Вам просто нужно установить параметр «sep» в пустую строку, потому что по умолчанию используется пробел. Чтобы использовать ваш пример:

sqlStatement <- paste("SELECT * FROM TIMETABLE WHERE Time LIKE '",time," 13:30%'", sep="")

документация по вставке находится здесь.

Удачных запросов!

person lafncow    schedule 15.07.2015