Поиск текста в столбце LongBlob из базы данных MySQL

У меня есть база данных mysql с именем столбца col1 типа LONGBLOB. Я хочу найти все строки, которые содержат строку с именем "ложь" в col1. Это запрос, который я использую, но я получаю пустой набор

  select * from Test t where CAST(t.col1 AS CHAR(10000) CHARACTER SET utf8) 
   like '%false%';

Я не уверен, что я делаю здесь не так

1 ответ

Бросать большое поле перед поиском не очень хорошая идея.

Вы можете добавить индекс FULLTEXT в свою таблицу, но вы должны преобразовать longblob поле для длинного текста или сделать поле как его копию, а затем:

create fulltext index `ilongtext` on Test(col1_copy);

Вы сможете искать как:

select * from Test where match (col1_copy) against ('+false');

Это будет быстрее

Другие вопросы по тегам