工作随笔——壹(关于MYSQL数据库中字符串与字符串匹配问题)

原创 2016年08月30日 12:14:23

问题描述:

MYSQL数据库储存中采用A,B,C,D.....字符串形式储存(I),前台返回值形式为字符串B,D,...(II),要求二者进行匹配,返回的List要求满足条件:II中每个逗号中间的值与I中匹配,存在即以此为条件进行查询。


问题难点:

1、不能在服务端将II拆分,拆分必须在MYSQL层面进行,而在MYSQL中将字符串拆分并转化为or row like B or row like D所需代码量太大。

2、II中的元素量无法提前预知,且有可能非常大,按照常规办法很有可能形成 or row like X*1000的情况,对系统运行不利。


尝试办法:

1、循环拆分II,挨个进行匹配,符合条件后再进行SELECT动作加入新表。(无法在mybatis文件中写入,且代码量太大,对系统压力太大)

2、服务端进行拆分,然后循环查询,将新的结果加入到List,使用List.addAll方法。(此方法成功,但是由于此次网站框架限制,不能在服务端对II进行拆分,故放弃)

3、SELECT * FROM TABLE1 WHERE row like '%B%D%',可以查询出一部分要求内容,但此语句对I中含有D,...B....之类的无效。


解决办法:

采用正则表达式。

SELECT * FROM TABLE1 WHERE row REGEXP B|D

仅需要将II中的逗号改为“|”即可。


附正则表达式“|”的意义:

de|abc ————————匹配de或abc。



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

SQL学习(4)——MySQL数据库常用的函数--常见的字符串函数

四、常见的字符串函数LENGTH(str): 求字符串长度(以字节为单位),返回字符串str的字节长度。 注:在GBK编码中,一个中文字符为2个字节。UTF-8编码中,一个中文字符为3个字节,一个...

sql语句之字符串匹配like

1 % 包含零个或更多字符的任意字符串 示例:WHERE title LIKE '%computer% ' 将查找处于书名任意位置的包含单词 ...

MySQL匹配指定字符串的查询

MySQL匹配指定字符串的查询 使用正则表达式查询时,正则表达式可以匹配字符串。当表中的记录包含这个字符串时,就可以将该记录查询出来。如果指定多个字符串时,需要用“|”符号隔开,只要匹配这些字符...

MySQL中的字符串模式匹配

MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式。 标准的SQL模式匹配 SQL的模式匹配允许你使用“_”匹配任何单个字符...

mysql中的字符匹配查询

1、like的字符匹配 (1)%百分号通配符,匹配任意长度的字符,包括零字符 (2)_下划线通配符,只匹配一个字符 2、正则表达式查询REGEXP   选...
  • semey
  • semey
  • 2016-09-13 09:49
  • 646

MySQL匹配指定字符串的查询

使用正则表达式查询时,正则表达式可以匹配字符串。当表中的记录包含这个字符串时,就可以将该记录查询出来。如果指定多个字符串时,需要用“|”符号隔开,只要匹配这些字符串中的任意一个即可查询出来。 ...

算法导论第32章——字符串匹配问题(KMP算法)

下面代码列举了普通字符串匹配算法和KMP算法。KMP算法原理见算法导论第32章。代码中有简单的注释可以帮助理解: #include #include using namespace std; ...

字符串匹配问题——KMP算法

KMP算法 KMP是解字符串匹配这类题目的算法,又称“看毛片”算法。如下图,给定一个长度为n的文本,给定一个长度为m 的字符串,求该字符串在给定文本的中出现的次数。KMP就是解决这一类题目的。i 1...

字符串匹配问题 ---- 算法导论读书笔记

字符串匹配是一个很常见的问题,可以扩展为模式的识别,解决字符串问题的思想被广泛地应用。介绍四种解决该问题的办法,包括:最朴素的遍历法,Rabin-Karp算法,自动机机匹配,Knuth-Morris-...

第2章 带通配符的字符串匹配问题

字符串匹配问题,给定一串字符串,按照指定规则对其进行匹配,并将匹配的结果保存至output数组中,多个匹配项用空格间隔,最后一个不需要空格。 要求: 匹配规则中包含通配符?和*,其中?...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)