Запуск dplyr, grepl в MySQL

У меня есть таблица в SQL, которую я тестирую 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()

Таким образом, теоретически это должно выбирать информацию из одной таблицы между start_date и end_date для компании company как нечеткое совпадение, так как названия компаний содержат такие вещи, как X отраслей и Y зарегистрированных

Я получаю сообщение об ошибке следующего вида

Ошибка в .local(conn, statement,...): не удалось запустить оператор: выполнение команды запрещено пользователю 'shiny'@'%' для подпрограммы '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`))

Ошибка в .local(conn, statement,...): не удалось запустить оператор: выполнение команды запрещено пользователю 'shiny'@'%' для подпрограммы 'mydb.GREPL'

Я изменил код и немного вывел из соображений конфиденциальности.

Вопросы

  • Кто-нибудь знает, как правильно это настроить (я знаю, что это права доступа на стороне mysql, но я не уверен, где, поскольку у блестящего пользователя есть доступ к выполнению

  • Почему SQL в плане объяснения выглядит так смешно (например, в нем два предложения where) и что такое lpknlorhcn

Большое спасибо за вашу помощь


person John Smith    schedule 21.09.2016    source источник


Ответы (1)


MySQL не поддерживает grepl(). Вы можете либо использовать %like%, либо сначала собрать данные, а затем использовать grepl().

См. этот вопрос об использовании grepl в dply/MySQL для получения дополнительной информации и примеров.

person crazybilly    schedule 26.01.2017