Domanda

Sto cercando di eseguire una query MySQL usando RMYSQL che include un LIKE e una variabile personalizzata all'interno della query.

Ecco un esempio della mia domanda

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

Il fatto è che per qualche motivo il simplequery interpreta la query in questo modo

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

Nota gli spazi prima e dopo some text quelli stanno impedendo alla mia domanda per ottenere risultati adeguati

Non ho idea del perché quegli spazi siano stati generati. Ho testato la mia domanda senza quegli spazi e restituisce risultati, quindi sono sicuro che quegli spazi stanno facendo fallire la mia query.

Qualche idea di un modo per aggirare questo problema?

Versioni: R 2.14.0 / RMYSQL 0.8

Grazie in anticipo

È stato utile?

Soluzione

Il valore predefinito in paste è sep=' ' (spazio), ma probabilmente hai intenzione sep='' (stringa vuota). In recente R puoi usare paste0 invece.

Altri suggerimenti

Ottieni GSUBFN e risolvi questo problema facendo questo alla riga di comando (non in R):

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

Questo installa una versione di GSUBFN che è compatibile con 2.14

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top