Pregunta

Estoy tratando de ejecutar una consulta MySQL usando RMYSQL que incluye un LIKE y una variable personalizada dentro de la consulta.

Aquí hay un ejemplo de mi consulta

customvar= 'some text'
(simpleQuery<-paste("SELECT * FROM `table` WHERE NameOfField like '%",customvar,"%'")) 
res<-dbGetQuery(con, simpleQuery)

La cosa es que por alguna razón SimpleQuery interpreta la consulta como esta

[1] "SELECT * FROM `table` WHERE NameOfField '% some text %'"

Tenga en cuenta los espacios antes y después some text Esos evitan que mi consulta obtenga los resultados adecuados

No tengo idea de por qué se generan esos espacios. Probé mi consulta sin esos espacios y devuelve los resultados, por lo que estoy seguro de que esos espacios están haciendo que mi consulta falle.

¿Alguna idea de una forma de evitar este problema?

Versiones: R 2.14.0 / RMYSQL 0.8

Gracias por adelantado

¿Fue útil?

Solución

El valor predeterminado en paste es sep=' ' (espacio), pero probablemente tienes la intención sep='' (cuerda vacía). En recientes r puedes usar paste0 en cambio.

Otros consejos

Obtiene GSubfn y resuelve este problema haciendo esto en la línea de comando (no en R):

wget http://cran.r-project.org/src/contrib/Archive/gsubfn/gsubfn_0.5-7.tar.gz
rm gsubfn_0.6-3.tar.gz

Esto instala una versión de GSubfn que es compatible con 2.14

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top