我有一个 mysql 数据库,其列名为 col1,类型为 LONGBLOB。我想搜索 col1 中包含名为“false”的字符串的所有行。这是我正在使用的查询,但我得到的是一个空集
select * from Test t where CAST(t.col1 AS CHAR(10000) CHARACTER SET utf8)
like '%false%';
我不确定我在这里做错了什么
最佳答案
在搜索之前转换一个大字段并不是一个好主意。
您可以向表中添加 FULLTEXT 索引,但必须将 longblob
字段转换为长文本或将字段作为其副本,然后:
create fulltext index `ilongtext` on Test(col1_copy);
您将能够进行如下搜索:
select * from Test where match (col1_copy) against ('+false');
速度会更快
关于mysql - 从 MySQL 数据库中搜索 LongBlob 列中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25561767/