[R] Searching for a string in RSQLite

David James dj at research.bell-labs.com
Thu Nov 25 17:25:05 CET 2004


Single quotes in a string are escaped by putting two single quotes in
a row.  E.g., 

   state <- "mess: '' ("

Regards,

--
David

Duncan Murdoch wrote:
> I'd like to search for a particular string in an SQLite database using
> RSQLite, but I'm running into problems constructing the query
> properly, because of embedded quotes and parens in the string.
> 
> Is there a function that escapes these for me, or some other fixup
> that would let me do the queries below?  In the real situation I don't
> have control over what strings get searched for.
> 
> Example based on ?SQLite:
> 
> > library(RSQLite)
> > m <- dbDriver("SQLite")
> > con <- dbConnect(m, dbname = "base.dbms")
> > data(USArrests)
> > dbWriteTable(con, "USArrests", USArrests, overwrite = T)
> [1] TRUE
> > state <- "Wyoming"
> 
> # this works fine:
> 
> > dbGetQuery(con, paste("SELECT * from USArrests where row_names='",state,"'",sep=""))
>   row_names Murder Assault UrbanPop Rape
> 1   Wyoming    6.8     161       60 15.6
> 
> # Buf if the search string contains characters that SQL interprets, I
> # get an error
> 
> > state <- "messy:  ' ("
> > dbGetQuery(con, paste("SELECT * from USArrests where row_names='",state,"'",sep=""))
> Error in sqliteExecStatement(con, statement) : 
>         RS-DBI driver: (error in statement: near "(": syntax error)
> 
> Duncan Murdoch
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html




More information about the R-help mailing list