2016-06-19 1 views
0

MySQL 데이터베이스에 연결된 반짝이는 응용 프로그램이 있습니다. 일부 쿼리의 경우 RMySQL 라이브러리를 사용하여 MYSQL에 연결합니다. 내 반짝이는 응용 프로그램에는 MYSQL에서 값을 채우는 제어 위젯이 있습니다. 위젯 중 하나는 모든 브랜드의 고유 한 이름을 렌더링하는 selectizeInput입니다. 이 위젯 출력을 R 반짝 대시 보드의 입력으로 사용하면 오류가 반환됩니다.반짝 이는 응용 프로그램 내에서 MYSQL에서 여러 행 가져 오기

이 따르는의 출력은 두 줄과 문자 벡터입니다
SI <- c("HYUNDAI CRETA", "HYUNDAI VERNA"). The object SI is actually a Selectize Input. 

mydb <- dbConnect(MySQL(), user = "root", password = "1234", dbname = "db1", host = "localhost") 
a <- paste0("select * from autotable where SUBBRAND like ",SI) 
dbGetQuery(mydb,a) 
on.exit(dbDisconnect(mydb)) 

로 :

[1] "select * from tabletable where SUBBRAND like HYUNDAI CRETA" 
[2] "select * from tabletable where SUBBRAND like HYUNDAI VERNA" 

대신 I는 다음과 MySQL의에 하나의 쿼리로이를 전달하려면 다음은 코드입니다 :

[1] "select * from tabletable where SUBBRAND like (HYUNDAI CRETA, HYUNDAI VERNA") 

위의 코드는 subbrand 현대 크레타 또는 현대 베르나 같은 곳에 나 MYSQL에서 모든 레코드를 가져올 수 있습니다.

답변

1

이게 원하는가요?

library(stringr) 
SI <- c("HYUNDAI CRETA", "HYUNDAI VERNA") 
SI <- str_c(SI, collapse = ",") 

a <- paste0("select * from autotable where SUBBRAND like (",SI,")") 
a 

[1] "를 선택 * autotable에서 어디 SUBBRAND (현대 CRETA, 현대 베르나) 등의"

편집 : 따옴표와 데이터베이스의 요구 사항에 맞게

library(stringr) 
SI <- c("HYUNDAI CRETA", "HYUNDAI VERNA") 
SI <- str_c(SI, collapse = ",") 
SI <- sub(",",'","',SI) 
a <- noquote(paste0('select * from autotable where SUBBRAND like ("',SI,'")')) 
a 

[ 1] select * from autotable 여기서 SUBBRAND like ("HYUNDAI CRETA", "HYUNDAI VERNA")

+1

:-) 많은 감사드립니다 ....하지만 실수를했습니다 .... 브랜드를 포장 할 수 있습니까? 따옴표로 ... mysql ....에 대한 올바른 구문입니다'select * from autotable 여기서 SUBBRAND like ("HYUNDAI CRETA", "HYUNDAI VERNA"'... 많은 감사합니다. – Apricot

+0

슈퍼 감사 ... 이것은 정말 도움이됩니다 ....-) :-) – Apricot

관련 문제