загружать данные инфильские разделительные слова на "_" - PullRequest
1 голос
/ 16 августа 2011

В настоящее время я импортирую словарь в mysql, в котором есть слова, разделенные _.Я хотел знать, как указать слова, разделенные _.Например, слова таковы:

Super_Mario
Stack_Overflow
Another_Word

, поэтому каждая строка будет сохранена как:

Super Mario
Stack Overflow
Another Word

У меня есть этот запрос прямо сейчас:

LOAD DATA LOCAL INFILE 
C:/upload/dictionary.csv
INTO TABLE dictionary
fields terminated by ',' lines terminated by '\n'

должен ли я использовать fields terminated by '_'?

Ответы [ 2 ]

2 голосов
/ 16 августа 2011

Нет, вы просто используете предложение SET (как и в UPDATE), чтобы установить значение поля с результатом операции REPLACE(), которая заменяет подчеркивание пробелами.

LOAD DATA LOCAL INFILE 
C:/upload/dictionary.csv
INTO TABLE dictionary (@var1)
SET your_column_name = REPLACE(@var1, '_', ' ')

Бит (@var1) после INTO TABLE dictionary просто означает «есть только один столбец в файле, который меня интересует, и я хочу сохранить его в @var1, чтобы я мог использовать его позжев моем SET предложении вместо того, чтобы поместить его прямо в столбец. "Выполните Ctrl + F для «предложения SET» в документации для LOAD DATA INFILE, чтобы увидеть, как использовать предложение SET, когда ваш входной файл содержит более одного столбца.

0 голосов
/ 16 августа 2011

fields terminated by '_' будет интерпретировать каждое слово, разделенное _, как новый столбец

так что Super_Mario, Stack_Overflow и Another_Word каждый получится в виде двух столбцов в каждой строке. Если весь ваш словарь состоит из двух слов, а ваша словарная таблица состоит из двух столбцов, это будет работать, но я чувствую, что не каждое слово в вашем файле будет двумя словами

Если вы хотите сохранить каждую строку в файле как один столбец, но со всеми _, замененными пробелами, вы можете сделать что-то вроде после импорта (или сделать что-то @ Джордан сказал и сделай это как часть импорта, который звучит лучше для меня)

UPDATE dictionary SET columnname = replace(columnname,'_',' ')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...