工作随笔——壹(关于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。



MySQL中的字符串模式匹配

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

mysql中的字符匹配查询

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

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

贴上原址:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html 感觉这篇文...

常见算法及问题场景——字符串匹配

思路字符串匹配的思路大致分几种: 1、暴力匹配。 2、基于暴力匹配进行优化。进行预计算,一旦发现失败匹配之后,可以跳过更多的位置,减少无谓的浪费。 这篇文档提到了许多按这个思路实现的算法各具特点...

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

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

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

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

简单字符串匹配问题-——用哈希解决

Pattern matching is the most fundamental algorithmic operation on text strings.This algorithm implem...
  • Hsuxu
  • Hsuxu
  • 2012年10月31日 19:24
  • 1365

字符串匹配问题——求给定字符串的next数组以及KMP算法实现

理解和手动求字符串的next数组值、next数组值的概念涉及到字符串匹配的问题...

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

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

[正则表达式]正则表达式(.*)和(.*?)的字符串匹配问题

Java 正则表达式 正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。 Java正则表达式和Perl的是...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:工作随笔——壹(关于MYSQL数据库中字符串与字符串匹配问题)
举报原因:
原因补充:

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