У меня есть небольшая проблема с данными, которые мне нужно решить. У меня есть таблица, где обычный текст электронной почты хранится в столбце longtext. Это было так, прежде чем я начал развиваться в рамках. Есть более миллиона строк, в которых хранятся большие электронные письма.MySQL: разделите столбец длинного текста на несколько столбцов текста
Мне нужно иметь возможность искать текст в этом поле, но требуется, чтобы все результаты возвращались. Это не идеально, потому что сотни пользователей используют систему, и им нужна возможность поиска содержимого электронной почты.
Я попробовал следующее простое утверждение SQL, но это занимает слишком много времени, чтобы найти записи:
select id from emails where description like "%hello world%";
согласовывая документации MySQL, полнотекстовая индексация может быть использована только в CHAR, VARCHAR и текстовые поля.
Может ли кто-нибудь предложить эффективный способ поиска в столбце longtext?
или
Существуют ли какие-либо методы SQL/команды, которые могут быть использованы для запуска через таблицы и разделив содержимое данного поля LONGTEXT в в нескольких текстовых столбцов для полнотекстового индексирования?
Я уже пробовал добавлять полнотекстовое индексирование на стол, но он терпит неудачу. Вот результат другой попытки создать новую таблицу. 'create table sample (description longtext);' - 'Query OK, 0 строк (0.20 секунд)'. 'alter table sample add fulltext index descidx (description);' - 'ERROR 1214 (HY000): используемый тип таблицы не поддерживает индексы FULLTEXT'. Двигатель, который используется: InnoDB. –
Я думаю, что нашел свою проблему. В настоящее время я использую mysql 5.5, а не 5.6. Полнотекстовое индексирование добавляется только в InnoDB из mysql 5.6 и далее. –
Да, это, к счастью, обновление - это безболезненный процесс. – e4c5