Question

J'essaie d'exécuter une requête MySQL à l'aide de RMySQL qui comprend un LIKE et une variable personnalisée à l'intérieur de la requête.

Voici un exemple de ma requête

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

Le fait est que pour une raison quelconque, simpleQuery interprète la requête comme ceci

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

Notez les espaces avant et après some text qui empêchent ma requête d'obtenir des résultats corrects

Je n'ai aucune idée de la raison pour laquelle ces espaces sont générés.J'ai testé ma requête sans ces espaces et elle donne des résultats, donc je suis sûr que ces espaces font échouer ma requête.

Avez-vous une idée d'un moyen de contourner ce problème?

Versions: R 2.14.0 / RMySQL 0.8

Merci d'avance

Était-ce utile?

La solution

La valeur par défaut dans paste est sep=' ' (espace), mais vous avez probablement voulu sep='' (chaîne vide).Dans le R récent, vous pouvez utiliser paste0 à la place.

Autres conseils

Vous obtenez gsubfn et résolvez ce problème en le faisant en ligne de commande (pas dans R):

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

Ceci installe une version de gsubfn compatible avec la version 2.14

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top