社区首页 >问答首页 >MySQL比较查询长文本列

MySQL比较查询长文本列
EN

Stack Overflow用户
提问于 2012-09-20 06:10:26
回答 1查看 1.8K关注 0票数 0

我有一个用来存储文本段落的LONGTEXT列。假设在这些段落中有这样的内容:

代码语言:javascript
代码运行次数:0
复制
Text text text text
COUNT: 75  text text
 text text text text
 text text text text

是否可以对所有文本中的小字符串"COUNT: 75“进行比较查询?

我的第一个想法是这样的

代码语言:javascript
代码运行次数:0
复制
SELECT * FROM `books`
WHERE `paragraphs` LIKE '%COUNT: >0%'

这有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-20 06:14:47

您的SELECT将只查找文本中包含通配符之间的精确位的行:您不能将LIKE与这样的比较逻辑组合在一起。

但是,您可以做的是使用正则表达式剥离文本的相关部分,然后进行分析。

但是,请记住,组合

  • large of text
  • text content logic
  • regex

一下子不会提供最好的性能!我会提出以下建议:

  1. 使用触发器剥离文本的一小部分,以便您有可管理的内容(即50个字符左右),将此子文本插入到单独的表中
  2. 使用MySql正则表达式或全文函数分析计数

所以你的触发器应该是这样的:

代码语言:javascript
代码运行次数:0
复制
select 
ltrim(rtrim(substring(paragraphs, instr(paragraphs, 'count:') + 6, 10)))
from books 
where instr(paragraphs, 'count:') > 0

这将使您获得'count:'之后的下10个字符,去掉空格。然后,您可以通过以下方式进一步提炼:

代码语言:javascript
代码运行次数:0
复制
select substring(text_snippet, 1, instr(text_snippet, ' ')) as count_value
from
(
    select 
    ltrim(rtrim(substring(paragraphs, instr(paragraphs, 'count:') + 6, 10))) 
          as text_snippet
    from books 
    where instr(paragraphs, 'count:') > 0
) x
where isnumeric(substring(text_snippet, 1, instr(text_snippet, ' '))) = 1

以获取其中数值跟在计数位之后的行。

然后,您可以提取COUNT旁边的数值,将它们保存为单独的表中的数字,然后使用如下所示的联接:

代码语言:javascript
代码运行次数:0
复制
select b.*
from books b inner join books_count_values v
on b.id = v.books_id
where v.count_value > 0

请看这里

http://dev.mysql.com/doc/refman/5.1/en/string-functions.html

你可以随意使用的功能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12506929

复制
相关文章
oracle、mysql 分页查询比较
1、 Oracle的分页查询语句 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 40和RN >= 21控制分页查询的每页的范围。 上面给出的这个分页查询语句,在大多数情况拥有较高的效率。分页的目的就是控制输
java达人
2018/01/31
2.7K0
oracle、mysql 分页查询比较
1、 Oracle的分页查询语句 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21 其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 40和RN >= 21控制分页查询的每页的范围。 上面给出的这个分页查询语句,在大多数情况拥有较高的效率。分页的目的就是控制输
java达人
2018/01/31
2.8K0
聊聊mysql的多列组合查询
• mysql-filtering-by-multiple-columns[1] • selecting-where-two-columns-are-in-a-set[2]
code4it
2022/04/15
4.6K0
聊聊mysql的多列组合查询
序 本文主要展示如何使用mysql的多列组合查询 何为多列组合查询呢,就是查询的值不再是单个列的值,而是组合列的值。比如where (column1,column2) in ((a1,b1),(a2,b2),(a3,b3)) 实例 建表 create table t_demo( id int NOT NULL AUTO_INCREMENT PRIMARY KEY, name varchar(10), score int ); insert into t_demo(name,score)
code4it
2022/04/02
4K0
MySQL查询表位置和列注释等
; # 查询表在哪个数据库与注释 SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_COMMENT FROM information_schema.TABLES WHERE 1=1 # AND TABLE_SCHEMA = '数据库名' AND TABLE_NAME = '表名' # AND TABLE_COMMENT = '表注释' ; # 查询列在哪个表与注释 SELECT c.TABLE_SCHEMA, c.TABLE_NAME, t.TABLE_COMMENT, COL
林万程
2018/06/21
3K0
使用 MySQL 5.7 虚拟列提高查询效率
大约两年前,我发表了一个在MySQL5.7版本上关于虚拟列的文章。从那时开始,它成为MySQL5.7发行版当中,我最喜欢的一个功能点。原因很简单:在虚拟列的帮助下,我们可以创建间接索引(fine-grained indexes),可以显著提高查询性能。我要告诉你一些技巧,可以潜在地解决那些使用了GROUP BY 和 ORDER BY而慢的报表查询。
wubx
2019/02/27
4.1K0
使用MySQL 5.7虚拟列提高查询效率
大约两年前,我发表了一个在MySQL5.7版本上关于虚拟列的文章。从那时开始,它成为MySQL5.7发行版当中,我最喜欢的一个功能点。原因很简单:在虚拟列的帮助下,我们可以创建间接索引(fine-grained indexes),可以显著提高查询性能。我要告诉你一些技巧,可以潜在地解决那些使用了GROUP BY 和 ORDER BY而慢的报表查询。
wubx
2019/04/24
2K0
问与答130:如何比较两列文本是否完全相同?
Q:最近,我的一项任务是需要比较包含多行数据的两列中,每行对应列的文本是否完全相同。例如,列A中有一系列文本,列B中也有一系列文本,比较A1中的文本是B1中的文本是否完全相同,A2与B2中的文本是否完全相同,……,等等。
fanjy
2021/08/31
2K0
MySQL 组合查询及全文本搜索
使用union的规则:1.两条或两条以上的select语句;2.每个select语句必须包含相同的列,表达式或聚集函数;3.这些列可以以不同的次序出现;4.列的数据必须兼容。
小末快跑
2019/07/03
1.1K0
Python修改文本列对齐
letter                   ->              LadderScore0                   ->        LadderScore1                   ->        LadderScore2                   ->        LadderScore3                   ->        LadderScore4                   ->        LadderScor
py3study
2020/01/15
2.4K0
Python修改文本列对齐
文本相似比较
大家好,我是数说君,这篇文章是想跟大家讨教一下。 如果有两段简单文本,如何比较它们的相似度?这里我们就假设是英文,不存在中文的分词问题,文本就类似于: text1 = 'hello, I am shushuo jun' text2 = 'hi, wo ye shi shushuo jun' 目前比较容易实现的,是计算出每个文本的词向量,然后将两列词向量进行比较,计算出相似度,实现比较简单,就不上code了。我在python中,计算出上面的text1和text2的相似度是51%。 但问题是: 这样的比较是以词
数说君
2018/04/08
1.2K0
vue 文本比较插件
最近需要加个统计日志功能,想着能把当前版本和上一版本列出来做比较,所以想到了找个对比插件,期间试过自己通过js实现,但很费事效果不理想,之后找了 https://github.com/ddchef/vue-code-diff 这个感觉也不是很合适。最终选用的下边这个,不过左右替换的功能不需要,不知如何去掉,有知道的麻烦留言告知。
用户1409099
2019/05/14
4.3K0
2021-01-13:很多列的数据,任意一列组合查询,mysql....
2021-01-13:很多列的数据,任意一列组合查询,mysql能做到,但是上亿的数据量做不到了,查的时候非常慢。我们需要一个引擎来支持它。这个引擎你有了解过吗?
福大大架构师每日一题
2021/01/13
2.8K0
比较列存储索引与行索引
原因:     之前已经写过一篇关于列存储索引的简介https://cloud.tencent.com/developer/article/1032222,很粗糙但是基本阐明了列存储索引的好处。为了更好的理解列存储索引,接下来我们一起通过列存储索引与传统的行存储索引地对比2014中的列存储索引带来了哪些改善。由于已经很多介绍列存储,因此这里我仅就性能的改进进行重点说明。 测试场景     我创建了5个测试,尽量保证测试环境避免来自外界的重负载进而影响到结果。测试结果基于两个独立的表,分别是: FactTra
用户1217611
2018/01/30
1.6K0
比较列存储索引与行索引
Mysql长事务总结
在结果中idletime是计算产生的,也是事务的持续时间。但事务的trxquery是NUL,这并不是说事务什么也没执行,一个事务可能包含多个SQL,如果SQL执行完毕就不再显示了。当前事务正在执行,innodb也不知道这个事务后续还有没有sql,啥时候会commit。 因此trx_query不能提供有意义的信息。
mingjie
2022/05/12
8570
Mysql长事务总结
如何利用mysql5.7提供的虚拟列来提高查询效率
在我们日常开发过程中,有时候因为对索引列进行函数调用,导致索引失效。举个例子,比如我们要按月查询记录,而当我们 表中只存时间,如果我们使用如下语句,其中create_time为索引列
lyb-geek
2022/07/12
2.8K0
如何利用mysql5.7提供的虚拟列来提高查询效率
Hive中排除SELECT查询列
在 Hive 表中可能存在很多列,也有可能就存在几列。如果我们想要表中所有列,毫无疑问我们可以使用 SELECT *。但在某些情况下,我们可能拥有 100 多列,并且我们只不需要其中几列。在这种情况下,之前都是手动的添加 SELECT 查询中的所有列名。由于列数很多,比较啰嗦。因此,我们希望能在 Hive 中从 SELECT 查询中排除某些列。
smartsi
2019/11/27
5.6K0
mysql列的处理
示例:ALTER TABLE tb_financial MODIFY CREATE_TIME DATETIME(3) DEFAULT NULL COMMENT '录入时间';
hankleo
2020/09/16
3.9K0
MySQL 列操作记录
在 MySQL 中,你可以使用多种命令和语句来执行列操作,包括添加、修改、删除列等。以下是一些与列操作相关的常用 MySQL 命令和语句:
孟斯特
2023/10/19
1480
MySQL 列操作记录
Django 2.1.7 模型 - 条件查询、模糊查询、空查询、比较查询、范围查询、日期查询
上一篇Django 2.1.7 模型 - MVT模型增删功能讲述了关于MVT模型中列表的增加数据以及删除数据的功能,在数据返回的过程中,也有部分关于模型之间关联查询的数据。
Devops海洋的渔夫
2019/06/15
10.8K0

相似问题

长mysql查询

20

mysql比较列和子查询

21

改进长mysql查询

20

Mysql长执行查询

13

长mysql插入查询

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文