mysql 查询

阿宝洁猪 2019-07-07 04:51:34
现在有2个字符串,例如
A字符串:1-a,1-b,2-a,2-c
B字符串:12-a,23-b,24-c

按逗号分隔后:
A中有:1-a,1-b,2-a,2-c 4个小字符串
B中有:12-a,23-b,24-c 3个小字符串

循环比较横杠后面的字符串是否一致,B中有12-a,A中有 1-a, 因为-后面都是a,在比较前面字符串,12是以1开头,所以1-a和12-a匹配,A和B中只要有一个匹配,符合条件就行。函数返回1。否则返回0。

上面例子中,1-a和12-a是匹配的,2-c和24-c是匹配的,只要满足一个匹配就返回1。

1-a,1-b,2-a,2-c 212-a,23-b,124-c 返回1
1-a,1-b,2-a,2-c 312-a,23-b,224-c 返回1
1-a,1-b,2-a,2-c 312-a,23-b,124-c 返回0

java代码实现如下:

public static int compare(String A, String B) {
String[] arrA = A.split(",");
String[] arrB = B.split(",");

for (String child1 : arrA) {
for (String child2 : arrB) {
String[] split1 = child1.split("-");
String[] split2 = child2.split("-");
if(split2[1].equals(split1[1]) && split2[0].startsWith(split1[0])) {
return 1;
}
}
}
return 0;
}


那位大佬写下mysql函数的实现,因为要在sql语句中进行查询,所以没法用java,这里我只是写个例子。
...全文
217 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dleno 2019-07-12
  • 打赏
  • 举报
回复
用正则,A在数据库中且是多行数据,则需要一个函数,将A处理成正则表达式,再匹配B,返回true|false.
A不在数据库或只有一行,就用程序处理成正则,再执行语句
文修 2019-07-10
  • 打赏
  • 举报
回复
楼主你好,mysql是用来查询的,你至少要提供你的表结构和你想要的结果吧
阿宝洁猪 2019-07-09
  • 打赏
  • 举报
回复
没人,自己顶一下
阿宝洁猪 2019-07-08
  • 打赏
  • 举报
回复
有没有大佬知道怎么写这个函数的,拜托了

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧