当前位置: 首页 > news >正文

mysql判断两个逗号分隔字符串是否有交集

  在网上找了一些,多多少少都有点问题,这里记录一下我修改后的代码:  

BEGIN
    DECLARE idx INT DEFAULT 0 ; -- B 集合单元索引 
    DECLARE len INT DEFAULT 0;-- B 集合表达式长度
    DECLARE llen INT DEFAULT 0;-- 最后检查位置
    DECLARE clen INT DEFAULT 0;-- 当前检查位置
    DECLARE tmpStr varchar(255);-- 临时检查数据集
    DECLARE curt varchar(255);-- B 当前检查的单元
    SET len = LENGTH(setB);
    WHILE idx < len DO
        SET idx = idx + 1;
        SET tmpStr = SUBSTRING_INDEX(setB,",",idx);
        SET clen = LENGTH(tmpStr);
-- 获取当前 setB 中的单元
        IF idx = 1 THEN SET curt = tmpStr;
        ELSE SET curt = SUBSTRING(setB,llen+2,clen-llen-1);
        END IF;
-- 检查是否存在于 setA 中
        IF curt != '' and FIND_IN_SET(curt,setA) > 0 THEN RETURN 1;
        END IF;
-- 当前检查终点与上次检查终点相同则跳出
        IF clen <= llen THEN RETURN 0;
        END IF;
 
        SET llen = clen;
    END WHILE;
    RETURN 0;
END

  保存成函数之后,执行测试案例:

select INTE_ARRAY("8,9","8,22,33,7") as is_inte_array;
-- 返回1
select INTE_ARRAY("1,9","8,22,33,7") as is_inte_array;
-- 返回0
select INTE_ARRAY(",","8,22,33,7") as is_inte_array;
-- 返回0(很多网上提供的解决方案没有考虑到这种情况)

 

转载于:https://www.cnblogs.com/tranquillity/p/9525176.html

相关文章:

  • 2018 KDD CUP支付宝安全团队Deep X斩获两项大奖
  • JConsole connection failed
  • tarjan进阶
  • ubuntu13启动屏幕亮度0解决方法
  • 数据结构与抽象 Java语言描述 第4版 pdf (内含标签)
  • 文件尾存在EOF吗?
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • JMeter中的读取json数据---JSON Extractor插件
  • 添加GDataXMLNODE.h和.m的方法
  • Administrator 被禁用
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 工作地址
  • Mysql系列七:分库分表技术难题之分布式全局唯一id解决方案
  • 2014年第一天
  • zabbix3.4 修改监控范围
  • [Vue CLI 3] 配置解析之 css.extract
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 2017届校招提前批面试回顾
  • ERLANG 网工修炼笔记 ---- UDP
  • IDEA 插件开发入门教程
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Java知识点总结(JavaIO-打印流)
  • Sass Day-01
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • Theano - 导数
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • use Google search engine
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 从0到1:PostCSS 插件开发最佳实践
  • 从零开始学习部署
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 技术胖1-4季视频复习— (看视频笔记)
  • 面试总结JavaScript篇
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 王永庆:技术创新改变教育未来
  • 新手搭建网站的主要流程
  • 白色的风信子
  • NLPIR智能语义技术让大数据挖掘更简单
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • # C++之functional库用法整理
  • #pragam once 和 #ifndef 预编译头
  • #QT项目实战(天气预报)
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (C语言)球球大作战
  • (Forward) Music Player: From UI Proposal to Code
  • (二)换源+apt-get基础配置+搜狗拼音
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (六)c52学习之旅-独立按键
  • (十) 初识 Docker file
  • (顺序)容器的好伴侣 --- 容器适配器
  • .net core 3.0 linux,.NET Core 3.0 的新增功能