mysql - 从 MySQL 数据库中搜索 LongBlob 列中的文本

标签 mysql sql database blob

我有一个 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/

相关文章:

mysql - 如何更改MySQL表触发器中的auto_increment字段?

mysql - 如果不需要,是否应该使用表关系

mysql - sql 表的命名约定

sql - 关于在数据库中保存密码的问题

jquery - 手机间隙 : Cannot multiple SQL request in same page

sql - 如何为访问控制列表 (ACL) 构建数据模型

c# - 如何将sql server数据库schema加上所有表中的数据转换成xml格式

mysql - 多列的不同计数

mysql - sql - 在 sql 中按部分字符串分组

mysql - 如何在表之间传输数据,仅在id不存在的情况下