2014-04-04 1 views
2

Я хочу импортировать данные с листа excel в базу данных MySQL с плагином MySQL для Excel. В некоторых ячейках есть тексты с точкой с запятой, и я уже выяснил, что это вызывает ошибку SQL. Я попытался сбежать с запятой с обратной косой чертой, но я все еще получаю сообщение об ошибке. Как я могу избежать точки с запятой?Побег с запятой; MYSQL for Excel

+1

Возможно, вы можете заменить точку с запятой с неиспользованным специальным символом (скажем, ^) в таблице Excel, импортировать данные в базу данных MySQL, а затем заменить^в базе данных после импорта. –

+0

Интересно, что произойдет, если вы сначала преобразуете ячейки в строку, используя 'Cstr (...)' –

ответ

2

Kai, это поведение является чисто по вине MySQL для Excell, и кажется, что это ошибка.

В то же время, если вы не заинтересованы в изменении данных в Excel, как предложено другими есть обходной путь:

В вашем MySQL-в-Excel окне Options, а затем выберите Preview SQL statements before they are sent to the server и Accept

, выполните, как обычно, с помощью экспорта/добавления данных с помощью надстройки, но когда появится окно Review SQL script, скопируйте содержимое в другой инструмент SQL (рабочий стол MySQL, HeidiSQL, SQLWorkbench и т. Д.) И запустите. затем нажмите «Отмена» в всплывающих окнах «Mysql-for-Excell» и при необходимости обновите запрос.

Также: не стесняйтесь сообщить об ошибке по адресу: http://bugs.mysql.com/

+0

Если бы схожая ситуация с этим. Оказывается, обновление с версии 1.2.0 для mysql для Excell до версии 1.2.1 устраняет проблему. – Jance

0

Замените точку с запятой уникальным текстом, например. [ТОЧКА С ЗАПЯТОЙ]. Далее импортировать данные в SQL и запустить что-то вроде

UPDATE your_table 
SET your_field = REPLACE(your_field, '[SEMICOLON]', ';') 
WHERE your_field LIKE '%[SEMICOLON]%' 
-1

Я думаю, что все, что вам нужно сделать, это принять во внимание требования Excel имеет при импорте данных из CSV-файлов (правила синтаксического анализа, вероятно, такой же или аналогичный) В вашем случае, если поле содержит какие-либо специальные символы, просто укажите значения с двойными кавычками перед импортом содержимого в Excel.

Итак:

UPDATE table 
SET field = '"' || field || '"' 
WHERE field like '%,%' 

Следующие правила должны применяться:

  • Поле, содержащее разрыв строки, двойные кавычки, и/или запятые должны быть указаны
  • Любого поля может быть (с двойными кавычками)
  • Символ() двойного кавычки в поле должен быть представлен двумя (двойными) символами кавычек.

Подробнее: Wikipedia: Comma-separated values