运行 dplyr, grepl 在 MySQL

Running dplyr, grepl in MySQL

我在 SQL 中有一个 table,我正在测试 dplyr。 我有两个输入,一个日期范围和一个公司文本字段

我运行下面的R代码

  # Filter on the Customer and the date range the user selects
  mydf <- db %>%
    tbl(table) %>%
    filter(TableDate >= start_date & TableDate <= end_date) %>% 
    filter(grepl('company', company_name)) %>% 
    collect()

所以理论上这应该 select 来自 start_dateend_date 公司 company like a fuzzy match 之间的单个 table 的信息作为公司名称包含 X industries 和 Y incorporated

我收到如下错误

Error in .local(conn, statement, ...) : could not run statement: execute command denied to user 'shiny'@'%' for routine 'mydb.GREPL'

当我看到 sql

myDF <- tbl(db,table)
myDF1 <- filter(myDF, TableDate >= start_date & TableDate <= end_date)
myDF2 <- filter(myDF1, grepl('company', company_name))

explain(myDF2)

我得到了输出

<SQL>
SELECT *
FROM (SELECT *
FROM `table`
WHERE (`TableDate ` >= '2015-01-01' AND `TableDate ` <= '2015-06-01')) `lpknlorhcn`
WHERE (GREPL('company', `company_name`))

Error in .local(conn, statement, ...) : could not run statement: execute command denied to user 'shiny'@'%' for routine 'mydb.GREPL'

出于隐私原因,我对代码和输出进行了一些修改

问题

感谢您的帮助

MySQL 不支持 grepl()。您可以使用 %like% 或先收集数据,然后使用 grepl().

有关更多信息和示例,请参阅